pandas.core.resample.Resampler.pipe#

окончательный Resampler.pipe(функция, *args, **kwargs)[источник]#

Применить func с аргументами для этого объекта Resampler и вернуть его результат.

Используйте .pipe когда вы хотите улучшить читаемость, объединяя функции, которые ожидают объекты Series, DataFrames, GroupBy или Resampler. Вместо записи

>>> h = lambda x, arg2, arg3: x + 1 - arg2 * arg3
>>> g = lambda x, arg1: x * 5 / arg1
>>> f = lambda x: x ** 4
>>> df = pd.DataFrame([["a", 4], ["b", 5]], columns=["group", "value"])
>>> h(g(f(df.groupby('group')), arg1=1), arg2=2, arg3=3)  

Вы можете написать

>>> (df.groupby('group')
...    .pipe(f)
...    .pipe(g, arg1=1)
...    .pipe(h, arg2=2, arg3=3))  

что гораздо более читаемо.

Параметры:
функциявызываемый объект или кортеж (вызываемый объект, строка)

Функция для применения к этому объекту Resampler или, альтернативно, (callable, data_keyword) кортеж, где data_keyword является строкой, указывающей ключевое слово callable который ожидает объект Resampler.

argsiterable, optional

Позиционные аргументы, переданные в функция.

kwargsdict, optional

Словарь ключевых аргументов, переданных в функция.

Возвращает:
тип возвращаемого значения функция.

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

Series.pipe

Применить функцию с аргументами к ряду.

DataFrame.pipe

Применить функцию с аргументами к датафрейму.

apply

Применить функцию к каждой группе вместо полного объекта Resampler.

Примечания

Подробнее здесь

Примеры

>>> df = pd.DataFrame({'A': [1, 2, 3, 4]},
...                   index=pd.date_range('2012-08-02', periods=4))
>>> df
            A
2012-08-02  1
2012-08-03  2
2012-08-04  3
2012-08-05  4

Чтобы получить разницу между максимальным и минимальным значением за каждый 2-дневный период за один проход, можно сделать

>>> df.resample('2D').pipe(lambda x: x.max() - x.min())
            A
2012-08-02  1
2012-08-04  1