Метод mean аксессора rolling
Метод mean применяется к объекту Rolling,
который создаётся через аксессор rolling у DataFrame
или Series. Он вычисляет скользящее среднее для каждого
окна данных. Первым параметром в rolling передаётся
размер окна, а метод mean не принимает дополнительных
параметров, кроме стандартных для агрегации.
Синтаксис
df.rolling(window).mean()
Пример
Давайте создадим простую таблицу и вычислим скользящее среднее
по столбцу 'a' с окном в 3 элемента:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df['a'].rolling(3).mean()
print(res)
Результат выполнения кода:
0 NaN
1 NaN
2 2.0
3 3.0
4 4.0
dtype: float64
Первые два значения NaN, так как для их вычисления
не хватает данных в окне.
Пример
Вычислим скользящее среднее сразу для всех столбцов
с окном в 2 элемента:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df.rolling(2).mean()
print(res)
Результат выполнения кода:
a b
0 NaN NaN
1 1.5 15.0
2 2.5 25.0
3 3.5 35.0
4 4.5 45.0
Пример
Если нужно игнорировать пропущенные значения, можно
использовать параметр min_periods в rolling.
Давайте зададим минимальное количество наблюдений в окне
равное 1, чтобы избежать NaN:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df['a'].rolling(3, min_periods=1).mean()
print(res)
Результат выполнения кода:
0 1.0
1 1.5
2 2.0
3 3.0
4 4.0
dtype: float64