как создать ведро полчаса в пандах - PullRequest
0 голосов
/ 27 августа 2018

У меня есть следующие 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 голосов
/ 27 августа 2018

думаю нужно вычесть 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...