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