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

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

Метод apply применяется к объекту Expanding, который получается через аксессор expanding у Series или DataFrame. Он позволяет применить произвольную пользовательскую функцию к каждому расширяющемуся окну данных. В качестве первого параметра передаётся функция, которая будет применена к значениям окна. Дополнительно можно передать аргументы в функцию через параметры args и kwargs.

Синтаксис

series.expanding(window).apply(func, raw=False, engine=None, engine_kwargs=None, args=None, kwargs=None)

Пример

Применим пользовательскую функцию для вычисления размаха (max - min) на расширяющемся окне:

import pandas as pd ser = pd.Series([1, 2, 3, 4, 5]) res = ser.expanding().apply(lambda x: x.max() - x.min()) print(res)

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

0 0.0 1 1.0 2 2.0 3 3.0 4 4.0 dtype: float64

Пример

Используем функцию с дополнительным аргументом. Вычислим сумму, делённую на коэффициент:

import pandas as pd ser = pd.Series([10, 20, 30, 40, 50]) res = ser.expanding().apply(lambda x, div: x.sum() / div, args=(2,)) print(res)

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

0 5.0 1 15.0 2 30.0 3 50.0 4 75.0 dtype: float64

Пример

Применим пользовательскую функцию к каждому столбцу DataFrame. Вычислим произведение элементов в расширяющемся окне:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [2, 4, 6, 8, 10] }) res = df.expanding().apply(lambda x: x.prod()) print(res)

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

a b 0 1.0 2.0 1 2.0 8.0 2 6.0 48.0 3 24.0 384.0 4 120.0 3840.0

Пример

Используем параметр raw для работы с массивами NumPy вместо объектов Series. Это может ускорить вычисления:

import pandas as pd import numpy as np ser = pd.Series([1, 3, 5, 7, 9]) res = ser.expanding().apply(lambda x: np.mean(x), raw=True) print(res)

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

0 1.0 1 2.0 2 3.0 3 4.0 4 5.0 dtype: float64

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

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