我有一個只包含字串格式(dtype:object)時間的資料框。我想知道的是如何創建一個包含行重合的時間間隔的新列?我在下面提供了一些示例資料:
Loss Time
0 02:10
1 22:20
2 20:00
3 01:20
4 12:36
我想創建一個包含間隔 10AM-4PM、4PM-8PM、8PM-6AM 和 6AM-10AM 的列。我嘗試了多種不同的方法,但沒有找到任何成功。pandas between_time 函式不起作用,因為它需要索引作為日期時間索引,而我不能這樣做,我嘗試查看 strptime 但沒有成功。任何想法將不勝感激。
uj5u.com熱心網友回復:
使用簡單的解決方案 cut
輸入:
TESTDATA = StringIO("""Loss_Time
02:10
22:20
20:00
01:20
12:36
05:30
23:59
5:00
9:30
11:30
14:30
16:30
21:20
""")
df = pd.read_csv(TESTDATA, sep=";")
代碼:
df.Loss_Time = pd.to_datetime(df.Loss_Time).dt.strftime('%H:%M')
bins = [0,6,10,16,20,24]
labels = ['8PM-6AM','6AM-10AM','10AM-4PM','4PM-8PM','8PM-6AM']
df['Time Bin'] = pd.cut(pd.to_datetime(df.Loss_Time).dt.hour, bins, labels=labels, right=False,ordered=False)
印刷:
Loss_Time Time Bin
0 02:10 8PM-6AM
1 22:20 8PM-6AM
2 20:00 8PM-6AM
3 01:20 8PM-6AM
4 12:36 10AM-4PM
5 05:30 8PM-6AM
6 23:59 8PM-6AM
7 05:00 8PM-6AM
8 09:30 6AM-10AM
9 11:30 10AM-4PM
10 14:30 10AM-4PM
11 16:30 4PM-8PM
12 21:20 8PM-6AM
uj5u.com熱心網友回復:
只需將其決議為日期時間并定義您想要的括號。
from datetime import datetime
import pandas as pd
foo = pd.Series(['02:10', '22:20','20:00','01:20', '12:36'])
foo_df = pd.DataFrame(foo)
def time_into_bracket(time_str):
time = datetime.strptime(time_str, "%H:%M").time()
bracket1 = datetime.strptime('00:00', "%H:%M").time()
bracket2 = datetime.strptime('08:00', "%H:%M").time()
bracket3 = datetime.strptime('16:00', "%H:%M").time()
if time >= bracket1 and time < bracket2:
return '00:00 - 08:00'
elif time >= bracket2 and time < bracket3:
return '08:00 - 16:00'
else:
return '16:00 - 24:00'
foo_df['time_bracket'] = foo_df[0].apply(time_into_bracket)
結果:
0 00:00 - 08:00
1 16:00 - 24:00
2 16:00 - 24:00
3 00:00 - 08:00
4 08:00 - 16:00
uj5u.com熱心網友回復:
df['Loss Time'] = pd.to_datetime(df['Loss Time'])
>>> df
Loss Time
0 2021-12-17 02:10:00
1 2021-12-17 22:20:00
2 2021-12-17 20:00:00
3 2021-12-17 01:20:00
4 2021-12-17 12:36:00
>>>
>>> import time
>>> df['Loss Time'] = [time.time() for time in df['Loss Time']]
>>>
>>> df
Loss Time
0 02:10:00
1 22:20:00
2 20:00:00
3 01:20:00
4 12:36:00
>>>
通過這樣做,您可以轉換那些包含時間物件的字串。然后,您可以過濾它們并將它們與您想要的不同時間進行比較(檢查時間是否在另外兩次之間)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/384383.html
上一篇:在Python中創建圖形儀表板
