Метод expanding
Метод expanding применяется к Series
и создаёт объект расширяющегося окна. Для каждого
элемента серии вычисление производится по всем
предыдущим элементам, включая текущий. Это позволяет
рассчитывать кумулятивные статистики, такие как
сумма, среднее, стандартное отклонение и другие.
Метод обычно используется в сочетании с агрегирующими
функциями, например mean, sum или std.
Основной параметр метода expanding - это
min_periods, который определяет минимальное
количество наблюдений в окне для вычисления результата.
По умолчанию значение равно 1, то есть
расчёт начинается с первого элемента.
Синтаксис
ser.expanding([min_periods])
Пример
Давайте создадим серию и применим расширяющееся окно для вычисления кумулятивной суммы:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
res = ser.expanding().sum()
print(res)
Результат выполнения кода:
0 1.0
1 3.0
2 6.0
3 10.0
4 15.0
dtype: float64
Как видно из результата, для каждого элемента вычисляется сумма всех предыдущих значений вместе с текущим.
Пример
Рассмотрим вычисление скользящего среднего с использованием расширяющегося окна:
import pandas as pd
ser = pd.Series([10, 20, 30, 40, 50])
res = ser.expanding().mean()
print(res)
Результат выполнения кода:
0 10.0
1 15.0
2 20.0
3 25.0
4 30.0
dtype: float64
Здесь среднее значение вычисляется для каждого элемента на основе всех предыдущих наблюдений.
Пример
Параметр min_periods позволяет задать
минимальное количество элементов для расчёта:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
res = ser.expanding(min_periods=3).sum()
print(res)
Результат выполнения кода:
0 NaN
1 NaN
2 6.0
3 10.0
4 15.0
dtype: float64
При установке min_periods=3 первые два
элемента содержат пропуски, так как недостаточно
данных для вычисления суммы.
Пример
Метод expanding также поддерживает
вычисление других статистик, например,
стандартного отклонения:
import pandas as pd
ser = pd.Series([2, 4, 6, 8, 10])
res = ser.expanding().std()
print(res)
Результат выполнения кода:
0 NaN
1 1.414214
2 2.000000
3 2.581989
4 3.162278
dtype: float64
Для первого элемента стандартное отклонение не определено, поэтому возвращается пропуск. Начиная со второго элемента вычисляется стандартное отклонение по всем предыдущим данным.