You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中编写支持多输入列的自定义apply函数?

如何用Pandas的apply调用接收多列的自定义函数生成新列?

假设你有如下Pandas DataFrame:

import pandas as pd

df = pd.DataFrame({
    'A': [34, 55],
    'B': [23, 65]
})

你已经掌握了针对单列使用apply的方法,现在需要实现接收多列输入的自定义函数,计算2*A + 3*B并生成新列C,有两种常见方案:

方案1:使用apply并指定axis=1

通过设置axis=1,apply会将DataFrame的每一行作为一个Series对象传入自定义函数,你可以通过列名直接提取对应列的值:

def mult_function(row):
    return 2 * row['A'] + 3 * row['B']

# 调用apply,axis=1表示按行处理
df['C'] = df.apply(mult_function, axis=1)

执行后得到结果:

A   B    C
0  34  23  137
1  55  65  305

方案2:直接使用向量化运算(推荐)

如果你的逻辑可以用Pandas的向量化操作实现,优先选择这种方式——它比apply的执行效率高得多(尤其处理大数据集时),代码也更简洁:

df['C'] = 2 * df['A'] + 3 * df['B']

执行后得到的结果和方案1完全一致。

内容的提问来源于stack exchange,提问作者fred.schwartz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 05:36:13