我在熊猫中有以下datafrmae
date value
2018-02-12 17:30:00 23
2018-02-12 18:00:00 45
2018-02-12 02:30:00 23
2018-02-12 03:00:00 56
2018-02-12 03:30:00 54
我想要像下面这样的相应的半小时时段
date value buckets
2018-02-12 17:30:00 23 17:00-17:30
2018-02-12 18:00:00 45 17:30-18:00
2018-02-12 02:30:00 23 02:00-02:30
2018-02-12 03:00:00 56 02:30-03:00
2018-02-12 03:30:00 54 03:00-03:30
我正在用熊猫中的以下脚本来完成
s = df[date_column].dt.floor('30T')
s1 = s.dt.strftime('%H:%M:%S') + '-' + (s + pd.Timedelta(29 * 60 , unit='s')).dt.strftime('%H:%M:%S')
但是,以上代码将2018-02-12 17:30:00
放在了17:30 - 17:59
存储桶中
日期列以半小时为间隔。
答案 0 :(得分:1)
我认为需要减去30min
:
s = df['date'].dt.floor('30T')
s1 = ((s - pd.Timedelta(30 * 60 , unit='s')).dt.strftime('%H:%M:%S')
+ '-'
+ s.dt.strftime('%H:%M:%S'))
print (s1)
0 17:00:00-17:30:00
1 17:30:00-18:00:00
2 02:00:00-02:30:00
3 02:30:00-03:00:00
4 03:00:00-03:30:00
Name: date, dtype: object