У меня есть следующие данные в пандах
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
ведро
Столбец даты находится в полчаса.
Я думаю, что нужен субстрат 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
2018-02-12 17:29:00
тогда нужно16:30:00-17:00:00
?