Метод sum
Метод sum аксессора rolling применяется к DataFrame
или Series и вычисляет скользящую сумму для числовых данных
в скользящем окне. Метод не имеет обязательных параметров,
но может принимать аргумент numeric_only для управления
обработкой нечисловых столбцов, а также параметры
engine и engine_kwargs для управления
вычислительным движком.
Синтаксис
rolling.sum(numeric_only=False, engine=None, engine_kwargs=None)
Пример
Базовый пример вычисления скользящей суммы для Series
с окном размером 3 элемента:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
res = ser.rolling(window=3).sum()
print(res)
Результат выполнения кода:
0 NaN
1 NaN
2 6.0
3 9.0
4 12.0
dtype: float64
Пример
Вычисление скользящей суммы для DataFrame
с окном размером 2 элемента:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df.rolling(window=2).sum()
print(res)
Результат выполнения кода:
a b
0 NaN NaN
1 3.0 30.0
2 5.0 50.0
3 7.0 70.0
4 9.0 90.0
Пример
Использование параметра numeric_only
для игнорирования строковых столбцов:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': ['x', 'y', 'z', 'w', 'v'],
'c': [10, 20, 30, 40, 50]
})
res = df.rolling(window=2, min_periods=1).sum(numeric_only=True)
print(res)
Результат выполнения кода:
a c
0 1.0 10.0
1 3.0 30.0
2 5.0 50.0
3 7.0 70.0
4 9.0 90.0
Пример
Скользящая сумма с дополнительным параметром
min_periods для установки минимального
количества наблюдений в окне:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
res = ser.rolling(window=4, min_periods=2).sum()
print(res)
Результат выполнения кода:
0 NaN
1 3.0
2 6.0
3 10.0
4 14.0
dtype: float64