我有像下面这样的pandas数据帧
date value 2018-02-12 17:30:00 23 2018-02-12 17:34:00 45 2018-02-12 17:36:00 23 2018-02-12 17:45:00 56 2018-02-12 18:37:00 54
所需的熊猫数据帧
date value half_hourly_bucket 2018-02-12 17:30:00 23 17:30-17:59 2018-02-12 17:34:00 45 17:30-17:59 2018-02-12 17:36:00 23 17:30-17:59 2018-02-12 17:45:00 56 17:30-17:59 2018-02-12 18:37:00 54 18:30-18:59
同样明智的是,我有24小时的数据.我不想使用if else循环48次.在熊猫中有没有更好的方法呢?
解决方法
我认为
strftime
需要
Series.dt.floor
,Timedeltas需要29Min:
print (df) date value 0 2018-02-12 18:00:00 23 <-changed values 1 2018-02-12 17:34:00 45 2 2018-02-12 17:36:00 23 3 2018-02-12 17:45:00 56 4 2018-02-12 18:37:00 54 s = df['date'].dt.floor('30T') s1 = s.dt.strftime('%H:%M') + '-' + (s + pd.Timedelta(29 * 60,unit='s')).dt.strftime('%H:%M') print (s1) 0 18:00-18:29 1 17:30-17:59 2 17:30-17:59 3 17:30-17:59 4 18:30-18:59 Name: date,dtype: object