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

Метод expanding

Метод expanding применяется к DataFrame и создаёт объект расширяющегося окна. В отличие от скользящего окна, расширяющееся окно включает все предыдущие строки на каждом шаге. Основной параметр метода - min_periods, который задаёт минимальное количество наблюдений в окне для вычисления значения. По умолчанию min_periods равен 1.

Синтаксис

df.expanding([min_periods])

Пример

Давайте вычислим кумулятивную сумму для столбца 'a':

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) res = df['a'].expanding().sum() print(res)

Результат выполнения кода:

0 1.0 1 3.0 2 6.0 3 10.0 4 15.0 dtype: float64

Пример

Рассчитаем кумулятивное среднее для столбца 'b':

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) res = df['b'].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 df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) res = df.expanding(min_periods=3).sum() print(res)

Результат выполнения кода:

a b 0 NaN NaN 1 NaN NaN 2 6.0 60.0 3 10.0 100.0 4 15.0 150.0

Пример

Применим расширяющееся окно для вычисления кумулятивного максимума и минимума:

import pandas as pd df = pd.DataFrame({ 'a': [1, 5, 3, 7, 2], 'b': [10, 30, 20, 50, 40] }) res_max = df.expanding().max() res_min = df.expanding().min() print("Max:\n", res_max) print("Min:\n", res_min)

Результат выполнения кода:

Max: a b 0 1 10 1 5 30 2 5 30 3 7 50 4 7 50 Min: a b 0 1 10 1 1 10 2 1 10 3 1 10 4 1 10

Пример

Вычислим кумулятивное стандартное отклонение с расширяющимся окном:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) res = df.expanding().std() print(res)

Результат выполнения кода:

a b 0 NaN NaN 1 0.707107 7.071068 2 1.000000 10.000000 3 1.290994 12.909944 4 1.581139 15.811388

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

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