РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
218 of 687 menu

Метод 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

Для первого элемента стандартное отклонение не определено, поэтому возвращается пропуск. Начиная со второго элемента вычисляется стандартное отклонение по всем предыдущим данным.

Смотрите также

  • метод rolling,
    который создаёт скользящее окно фиксированного размера
  • метод ewm,
    который создаёт экспоненциально взвешенное окно
  • метод cumsum,
    который вычисляет кумулятивную сумму
  • метод mean,
    который вычисляет среднее арифметическое значение
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить