我有一个hh:mm:ss.ms格式的时间字段。我正在使用此时间字段作为索引创建数据透视表。我想以12:30到13:30,13:30:14:30等开始范围进行分组。
示例:
ActualTime
12:30
12:31
12:46
13:05
13时22
13:48
14:05
答案 0 :(得分:0)
您可以将cut
与timedelta
一起使用,范围使用timedelta_range
:
df['ActualTime'] = pd.to_timedelta(df['ActualTime'].astype(str) + ':00')
b = pd.timedelta_range('0', '24:00:00', freq='30T')
lab = [ str(i)[-8:-3] + ' - '+str(j)[-8:-3] for i,j in zip(b[:-1], b[1:]) ]
df['a'] = pd.cut(df['ActualTime'], bins=b, labels=lab)
print (df)
ActualTime a
0 12:30:00 12:00 - 12:30
1 12:31:00 12:30 - 13:00
2 12:46:00 12:30 - 13:00
3 13:05:00 13:00 - 13:30
4 13:22:00 13:00 - 13:30
5 13:48:00 13:30 - 14:00
6 14:05:00 14:00 - 14:30