dask_expr._collection.Index.pipe
dask_expr._collection.Index.pipe¶
- Index.pipe(func, *args, **kwargs)¶
应用期望 Series 或 DataFrame 的可链式函数。
此文档字符串是从 pandas.core.frame.DataFrame.pipe 复制而来的。
Dask 版本可能存在一些不一致性。
- 参数
- 函数函数
要应用于 Series/DataFrame 的函数。
args
和kwargs
被传递给func
。或者是一个(可调用对象, data_keyword)
元组,其中data_keyword
是一个字符串,指示可调用对象
中期望 Series/DataFrame 的关键字。- *args可迭代对象, 可选
传递给
func
的位置参数。- **kwargs映射,可选
传递给
func
的关键字参数的字典。
- 返回
func
的返回类型。
参见
DataFrame.apply
沿 DataFrame 的输入轴应用函数。
DataFrame.map
在整个DataFrame上逐元素应用一个函数。
Series.map
在
Series
上应用映射对应关系。
注释
当将期望 Series、DataFrames 或 GroupBy 对象的函数链接在一起时,使用
.pipe
。示例
从字典构建收入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