Подтвердить что ты не робот

Повторная почасовая настройка TimeSeries с определенным стартовым часом

Я хочу перепрограммировать TimeSeries ежедневно (ровно 24 часа), начиная с определенного часа.

Как

index = date_range(datetime(2012,1,1,17), freq='H', periods=60)

ts = Series(data=[1]*60, index=index)

ts.resample(rule='D', how='sum', closed='left', label='left')

Результат я получаю:

2012-01-01  7
2012-01-02 24
2012-01-03 24
2012-01-04  5
Freq: D

Результат, который я хочу:

2012-01-01 17:00:00 24
2012-01-02 17:00:00 24
2012-01-03 17:00:00 12
Freq: D

Несколько недель назад вы могли передать '24H' в аргумент freq, и это сработало полностью. Но теперь он объединяет '24H' с '1D'.

Я использовал ошибку с '24H', которая теперь исправлена? И как я могу получить желаемый результат в эффективном и pythonic (или pandas) обратном пути?

версии:

  • python 2.7.3
  • pandas 0.9.0rc1 (но также не работает в 0.8.1)
  • numpy 1.6.1
4b9b3361

Ответ 1

Resample имеет аргумент base, который охватывает этот случай:

ts.resample(rule='24H', closed='left', label='left', base=17).sum()

Вывод:

2012-01-01 17:00:00    24
2012-01-02 17:00:00    24
2012-01-03 17:00:00    12
Freq: 24H