Pandas2.2 DataFrame
Function application, GroupBy & window
方法 | 描述 |
---|---|
DataFrame.apply(func[, axis, raw, …]) | 用于沿 DataFrame 的轴(行或列)应用一个函数 |
DataFrame.map(func[, na_action]) | 用于对 DataFrame 的每个元素应用一个函数 |
DataFrame.pipe(func, *args, **kwargs) | 用于实现链式编程风格的方法 |
pandas.DataFrame.pipe()
pandas.DataFrame.pipe()
是一个用于实现链式编程风格的方法,它允许你将 DataFrame 作为参数传递给一个自定义函数 func
,从而提高代码的可读性和可维护性。
方法签名
DataFrame.pipe(func, *args, **kwargs)
参数说明
参数 | 类型 | 描述 |
---|---|---|
func | function or tuple of (function, str) | 要应用的函数。如果是一个元组,则第二个元素指定 DataFrame 应该作为哪个参数传入。 |
*args | positional arguments | 传递给 func 的位置参数。 |
**kwargs | keyword arguments | 传递给 func 的关键字参数。 |
返回值
- 返回
func
执行后的结果,通常返回一个新的 DataFrame 或其他类型的结果。
示例
示例1:基本用法 - 将 DataFrame 传递给外部函数
import pandas as pd
def add_constant(df, value):
return df + value
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6]
})
# 使用 pipe 添加常数
result = df.pipe(add_constant, value=10)
print(result)
输出:
A B
0 11 14
1 12 15
2 13 16
示例2:链式调用多个函数
def multiply_by(df, factor):
return df * factor
def subtract_mean(df):
return df - df.mean()
# 链式调用
result = (
df
.pipe(multiply_by, factor=2)
.pipe(subtract_mean)
)
print(result)
输出:
A B
0 -2 -2
1 0 0
2 2 2
示例3:使用 tuple 指定函数参数名
def custom_func(value, df):
return df * 2 + value
# 指定 df 作为第二个参数传入
result = df.pipe((custom_func, 'df'), value=100)
print(result)
输出:
A B
0 102 204
1 104 206
2 106 208
总结
pipe()
支持链式调用,使复杂数据处理流程更清晰。- 可以将 DataFrame 明确地作为参数传入函数,提升代码可读性。
- 特别适合构建模块化的数据分析流水线。