我有像下面这样的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
Run Code Online (Sandbox Code Playgroud)
所需的熊猫数据帧
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
Run Code Online (Sandbox Code Playgroud)
同样明智的是,我有24小时的数据.我不想使用if else循环48次.在熊猫中有没有更好的方法呢?
我认为需要Series.dt.floor有strftime添加29Min由TimedeltaS:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |