如何在熊猫中创建半小时的时段

时间:2018-08-27 11:17:06

标签: python pandas

我在熊猫中有以下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存储桶中

日期列以半小时为间隔。

1 个答案:

答案 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