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

Метод sum аксессора expanding

Метод sum аксессора expanding применяется к DataFrame или Series и вычисляет расширяющуюся сумму элементов. При этом на каждой итерации сумма вычисляется по всем предыдущим элементам, включая текущий. Метод позволяет указать ось для вычислений, минимальное количество наблюдений, а также настройки пропуска пропущенных значений.

Синтаксис

df.expanding().sum([min_periods, axis, numeric_only])

Пример

Давайте создадим Series и вычислим расширяющуюся сумму:

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

Пример

Теперь применим метод к DataFrame, чтобы увидеть расширяющуюся сумму по каждому столбцу:

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

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

a b 0 1.0 10.0 1 3.0 30.0 2 6.0 60.0 3 10.0 100.0 4 15.0 150.0

Пример с пропущенными значениями

Рассмотрим поведение метода при наличии пропусков. По умолчанию NaN в данных приводит к NaN в результате:

import pandas as pd ser = pd.Series([1, None, 3, 4, 5]) res = ser.expanding().sum() print(res)

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

0 1.0 1 NaN 2 NaN 3 NaN 4 NaN dtype: float64

Пример с параметром min_periods

Параметр min_periods задаёт минимальное количество наблюдений, необходимое для вычисления суммы. Если наблюдений меньше, результат будет NaN:

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

Пример с параметром axis

Параметр axis определяет направление вычислений. По умолчанию вычисления идут по строкам (axis=0). Укажем axis=1, чтобы вычислять сумму по столбцам:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3], 'b': [10, 20, 30], 'c': [100, 200, 300] }) res = df.expanding(axis=1).sum() print(res)

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

a b c 0 1.0 11.0 111.0 1 2.0 22.0 222.0 2 3.0 33.0 333.0

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

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