pandas.Series.pipe#

Series.pipe(функция, *args, **kwargs)[источник]#

Применение цепочечных функций, которые ожидают Series или DataFrames.

Параметры:
функцияфункция

Функция для применения к Series/DataFrame. args, и kwargs передаются в func. В качестве альтернативы (callable, data_keyword) кортеж, где data_keyword является строкой, указывающей ключевое слово callable который ожидает Series/DataFrame.

*argsiterable, optional

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

**kwargsотображение, необязательный

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

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

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

DataFrame.apply

Применить функцию вдоль входной оси DataFrame.

DataFrame.map

Применение функции поэлементно ко всему DataFrame.

Series.map

Применить соответствие отображения на Series.

Примечания

Используйте .pipe при объединении функций, которые ожидают Series, DataFrames или объекты GroupBy.

Примеры

Создание DataFrame дохода из словаря.

>>> data = [[8000, 1000], [9500, np.nan], [5000, 2000]]
>>> df = pd.DataFrame(data, columns=['Salary', 'Others'])
>>> df
   Salary  Others
0    8000  1000.0
1    9500     NaN
2    5000  2000.0

Функции, выполняющие налоговые вычеты в DataFrame доходов.

>>> def subtract_federal_tax(df):
...     return df * 0.9
>>> def subtract_state_tax(df, rate):
...     return df * (1 - rate)
>>> def subtract_national_insurance(df, rate, rate_increase):
...     new_rate = rate + rate_increase
...     return df * (1 - new_rate)

Вместо написания

>>> subtract_national_insurance(
...     subtract_state_tax(subtract_federal_tax(df), rate=0.12),
...     rate=0.05,
...     rate_increase=0.02)  

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

>>> (
...     df.pipe(subtract_federal_tax)
...     .pipe(subtract_state_tax, rate=0.12)
...     .pipe(subtract_national_insurance, rate=0.05, rate_increase=0.02)
... )
    Salary   Others
0  5892.48   736.56
1  6997.32      NaN
2  3682.80  1473.12

Если у вас есть функция, которая принимает данные как (скажем) второй аргумент, передайте кортеж, указывающий, какой ключевой аргумент ожидает данные. Например, предположим national_insurance принимает свои данные как df во втором аргументе:

>>> def subtract_national_insurance(rate, df, rate_increase):
...     new_rate = rate + rate_increase
...     return df * (1 - new_rate)
>>> (
...     df.pipe(subtract_federal_tax)
...     .pipe(subtract_state_tax, rate=0.12)
...     .pipe(
...         (subtract_national_insurance, 'df'),
...         rate=0.05,
...         rate_increase=0.02
...     )
... )
    Salary   Others
0  5892.48   736.56
1  6997.32      NaN
2  3682.80  1473.12