pandas.DataFrame.pipe # 数据框。管道( func , * args , ** kwargs ) [来源] # 应用需要 Series 或 DataFrame 的可链接函数。 参数: 函数函数应用于系列/数据帧的函数。 args,并被kwargs传递到func。或者一个元组,其中 是一个字符串,指示需要系列/数据帧的关键字 。(callable, data_keyword)data_keywordcallable *args可迭代,可选位置参数传递到func. **kwargs映射,可选传递到 的关键字参数的字典func。 返回: 的返回类型func。 也可以看看 DataFrame.apply沿 DataFrame 的输入轴应用函数。 DataFrame.map在整个 DataFrame 上按元素应用函数。 Series.map在 上应用映射对应关系Series。 笔记 .pipe将需要 Series、DataFrames 或 GroupBy 对象的函数链接在一起时使用。 例子 从字典构建收入数据框。 >>> 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