python – 如何在半小时间隔内划分pandas日期时间列

前端之家收集整理的这篇文章主要介绍了python – 如何在半小时间隔内划分pandas日期时间列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有像下面这样的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

猜你在找的Python相关文章