Я пытаюсь выяснить, какой алгоритм использует pandas для скользящего среднего со смещением по времени, потому что я получаю неожиданные результаты, когда вычисляю его вручную.
Мои данные отформатированы во фрейме данных со значениями детализации в 1 минуту следующим образом:
Datetime Values
2018-02-02 21:27:00 3175.068017
2018-02-02 21:28:00 3163.183960
2018-02-02 21:29:00 3175.972021
2018-02-02 21:30:00 3188.535987
2018-02-02 21:31:00 3192.447974
Типы столбцов:
Datetime is datetime64[ns]
Values is float64
Иногда временные ряды нерегулярны (пропускается минута или больше), поэтому я пытаюсь использовать сдвиг времени для скользящего среднего. Я хочу среднее значение за 1 час, и я использую команду:
df.rolling('H').mean()
Насколько я понимаю, по умолчанию это min_periods=1
. Я попытался с 1-минутным скользящим средним уже, и я возвратил то, что я ожидал. Но за 1 час я не получаю то, что ожидаю, но я не знаю, какой алгоритм он использует.
Итак, с min_periods=1
я ожидаю, что вычисление будет:
Datetime Avg Interval
2018-02-02 21:27:00 3216.71147 [21:27-22:26]
2018-02-02 21:28:00 3217.57497 [21:28-22:27]
2018-02-02 21:29:00 3219.08083 [21:29-22:28]
Вместо панд дает мне:
Datetime Avg
2018-02-02 21:27:00 3175.068017 # Same as Raw
2018-02-02 21:28:00 3169.125989
2018-02-02 21:29:00 3171.408000
2018-02-02 21:30:00 3175.689996
Я подумал, может быть, он принимает 21:00-21:59
, но среднее значение в этом окне 3190.77915
. Я просто пытаюсь определить, что на самом деле делают панды для моих данных за 1 м со средней степенью детализации за 1 час, потому что это не то, что я ожидаю.