Spec-Zone.ru › pandas 2

pandas.core.groupby.SeriesGroupBy.pipe

SeriesGroupBy.pipe(func, *args, **kwargs)[source]

Применяет функцию с аргументами к этому объекту GroupBy и возвращает результат.

Используйте .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:вызов или кортеж (вызов, строка)

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

args:итерируемый, необязательно

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

kwargs:словарь, необязательно

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

Возвращает:
тип возвращаемого значения func.

См. также

Series.pipe

Применение функции с аргументами к серии.

DataFrame.pipe

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

apply

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

Примечания

См. больше здесь

Примеры

>>> df = pd.DataFrame({'A': 'a b a b'.split(), 'B': [1, 2, 3, 4]})
>>> df
   A  B
0  a  1
1  b  2
2  a  3
3  b  4

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

>>> df.groupby('A').pipe(lambda x: x.max() - x.min())
   B
A
a  2
b  2

© 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.groupby.SeriesGroupBy.pipe.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API