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