将时间分组为时间间隔

时间:2019-01-28 10:01:29

标签: python pandas dataframe

我有一个包含不同时间的数据框。我需要将这些时间按不同的时间间隔分类到新数据框中的新列中。

df7['Time_B'] = df6.groupby([df6['Arr_Time'],pd.TimeGrouper(freq='6H')])

期望包含Time_B的新列。 HH:MM中的到达时间应分类为不同的时间段,即12-6、6-12、12-18、18-24。我该怎么办?

1 个答案:

答案 0 :(得分:0)

这就是我要做的事情:

from io import StringIO
import numpy as np
import pandas as pd

df7 = pd.read_csv(StringIO('''
Origin, Destination, Dept_Date, Dept_Time, Total_Fare
BLR, MAA, 2018-10-27, 00:45, 2635.0
BLR, MAA, 2018-10-27, 10:45, 2635.0
BLR, MAA, 2018-10-27, 11:45, 2635.0
BLR, MAA, 2018-10-27, 18:45, 2635.0
'''))

df7

输入数据框: enter image description here

要添加时隙:

df7["Departure"] = df7.apply(lambda x: pd.to_datetime(x[2] +' '+ x[3]), axis=1)

time_diff = df7.Departure - pd.to_datetime(df7.Departure.dt.date)

df7['Time_Slot'] = np.floor((time_diff / np.timedelta64(6, 'h')) )

interval_dict = {0.0:'00-06',
                1.0:'06-12',
                2.0:'12-18',
                3.0:'18-24'}

df7['Time_B'] = df7.Time_Slot.map(interval_dict)

del df7["Departure"]
del df7["Time_Slot"]

所需的输出: enter image description here

希望这会有所帮助。可以压缩代码。