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

如何在Pandas DataFrame中为每行两列传递参数应用自定义函数?

Pandas apply传递多列参数的解决方法

你的代码无法正确传递参数的核心原因是没有指定axis=1,apply方法默认对列进行操作,要实现逐行处理必须添加该参数。

修正后的代码

df["ColC"] = df[["ColA", "ColB"]].apply(lambda x: customFunc(x.ColA, x.ColB), axis=1)

更简洁的写法

也可以直接对整个DataFrame调用apply,无需单独筛选列:

df["ColC"] = df.apply(lambda row: customFunc(row["ColA"], row["ColB"]), axis=1)

额外优化:自定义函数的潜在问题

注意你的customFunc存在一个逻辑问题:data = f.read()后,enumerate(data)会逐个遍历文件的单个字符,而非按行遍历。如果你的需求是按行查找匹配,建议修改函数如下:

def customFunc(file_name, pattern):
    match_index = -1
    with open(file_name) as f:
        # 按行读取文件,start=1让行号从1开始计数(可选)
        for line_num, line in enumerate(f, start=1):
            match_index = line.find(pattern)
            if match_index != -1:
                break
    return match_index

内容的提问来源于stack exchange,提问作者Setu Kumar Basak

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:40:15