как создать ведро полчаса в пандах

1

У меня есть следующие данные в пандах

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 ведро

Столбец даты находится в полчаса.

  • 0
    Если 2018-02-12 17:29:00 тогда нужно 16:30:00-17:00:00 ?
Теги:
pandas

1 ответ

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню