pandas.core.resample.Resampler.pipe
- finalResampler.pipe(func, *args, **kwargs)[source]
-
Применяет функцию с аргументами к объекту Resampler и возвращает результат.
Используйте .pipe, чтобы улучшить читаемость, объединяя функции, ожидающие объекты Series, DataFrame, 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))что гораздо понятнее.
- Параметры:
-
- func:callable или кортеж (callable, str)
-
Функция для применения к объекту Resampler или, альтернативно, кортеж (callable, data_keyword), где data_keyword — строка, указывающая ключевое слово callable, которое ожидает объект Resampler.
- args:итерируемый объект, необязательно
-
Позиционные аргументы, передаваемые в func.
- kwargs:словарь, необязательно
-
Словарь ключевых аргументов, передаваемых в func.
- Возвращает:
-
- тип возвращаемого значения func.
См. также
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Чтобы получить разницу между максимальным и минимальным значением каждого двухдневного периода за один проход, можно сделать
>>> df.resample('2D').pipe(lambda x: x.max() - x.min()) A 2012-08-02 1 2012-08-04 1
© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.core.resample.Resampler.pipe.html