Что такое алгоритм скользящего среднего значения для панд с данными 1 м и смещением времени 1 час - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь выяснить, какой алгоритм использует 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 час, потому что это не то, что я ожидаю.

...