Используя pandas 0.18.1, я бы хотел взять скользящее среднее для одного столбца. Начиная с версии 0.18.0, это делается с помощью объектов roll(). Значение по умолчанию для этих подвижных объектов должно быть правильно обосновано. Существует логический аргумент, который вы можете передать, center = True, чтобы выровнять объект качения с центральным значением, но, похоже, не существует способа выравнивания по левому краю. Вот пример:
df = pandas.DataFrame({'A': [2,3,6,8,20, 27]})
df
A
0 2
1 3
2 6
3 8
4 20
5 27
Стандартный метод автоматически выравнивается вправо, поэтому нет значения в первых двух indecies с окном размера три:
df.rolling(window=3).mean()
A
0 NaN
1 NaN
2 3.666667
3 5.666667
4 11.333333
5 18.333333
Мы можем выровнять по центру операцию следующим образом:
df.rolling(window=3).mean(center=True)
A
0 NaN
1 3.666667
2 5.666667
3 11.333333
4 18.333333
5 NaN
Но я ищу следующее:
df.rolling(3).mean()
A
0 3.666667
1 5.666667
2 11.333333
3 18.333333
4 NaN
5 NaN
Я могу выполнить это, выполнив его с выравниванием по правому праву по умолчанию, а затем повторно проиндексируя его или изменив порядок строк, а затем сделав его "выровненным по правому краю", но это рабочие моменты для того, что должно быть прямолинейная операция.