Movatterモバイル変換


[0]ホーム

URL:


Skip to main content
Ctrl+K

pandas.DataFrame.pipe#

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

Apply chainable functions that expect Series or DataFrames.

Parameters:
funcfunction

Function to apply to the Series/DataFrame.args, andkwargs are passed intofunc.Alternatively a(callable,data_keyword) tuple wheredata_keyword is a string indicating the keyword ofcallable that expects the Series/DataFrame.

*argsiterable, optional

Positional arguments passed intofunc.

**kwargsmapping, optional

A dictionary of keyword arguments passed intofunc.

Returns:
the return type offunc.

See also

DataFrame.apply

Apply a function along input axis of DataFrame.

DataFrame.map

Apply a function elementwise on a whole DataFrame.

Series.map

Apply a mapping correspondence on aSeries.

Notes

Use.pipe when chaining together functions that expectSeries, DataFrames or GroupBy objects.

Examples

Constructing a income DataFrame from a dictionary.

>>>data=[[8000,1000],[9500,np.nan],[5000,2000]]>>>df=pd.DataFrame(data,columns=['Salary','Others'])>>>df   Salary  Others0    8000  1000.01    9500     NaN2    5000  2000.0

Functions that perform tax reductions on an income DataFrame.

>>>defsubtract_federal_tax(df):...returndf*0.9>>>defsubtract_state_tax(df,rate):...returndf*(1-rate)>>>defsubtract_national_insurance(df,rate,rate_increase):...new_rate=rate+rate_increase...returndf*(1-new_rate)

Instead of writing

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

You can write

>>>(...df.pipe(subtract_federal_tax)....pipe(subtract_state_tax,rate=0.12)....pipe(subtract_national_insurance,rate=0.05,rate_increase=0.02)...)    Salary   Others0  5892.48   736.561  6997.32      NaN2  3682.80  1473.12

If you have a function that takes the data as (say) the secondargument, pass a tuple indicating which keyword expects thedata. For example, supposenational_insurance takes its data asdfin the second argument:

>>>defsubtract_national_insurance(rate,df,rate_increase):...new_rate=rate+rate_increase...returndf*(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   Others0  5892.48   736.561  6997.32      NaN2  3682.80  1473.12

[8]ページ先頭

©2009-2025 Movatter.jp