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

Метод apply

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

Синтаксис

resampler.apply(func, *args, **kwargs)

Обязательным параметром является func - функция для применения к каждой группе. Дополнительные параметры args и kwargs передаются в функцию как аргументы.

Пример

Создадим временной ряд и применим пользовательскую функцию для вычисления диапазона значений в каждой группе при передискретизации по месяцам:

import pandas as pd dates = pd.date_range('2023-01-01', periods=12, freq='D') ser = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], index=dates) res = ser.resample('M').apply(lambda x: x.max() - x.min()) print(res)

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

2023-01-31 11 Freq: M, dtype: int64

Пример

Применим функцию к DataFrame, которая возвращает несколько статистик для каждой группы:

import pandas as pd dates = pd.date_range('2023-01-01', periods=12, freq='D') df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], 'b': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120] }, index=dates) def custom_agg(x): return pd.Series({ 'a_sum': x['a'].sum(), 'b_mean': x['b'].mean(), 'a_max': x['a'].max() }) res = df.resample('M').apply(custom_agg) print(res)

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

a_sum b_mean a_max 2023-01-31 78 65.0 12

Пример

Используем метод apply с дополнительными аргументами для гибкой обработки данных:

import pandas as pd dates = pd.date_range('2023-01-01', periods=12, freq='D') ser = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], index=dates) def multiply(x, factor): return x.sum() * factor res = ser.resample('M').apply(multiply, factor=2) print(res)

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

2023-01-31 156 Freq: M, dtype: int64

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

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