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

如何将pandas apply方法内的lambda函数改写为普通自定义函数

错误原因分析

  • 混淆了df.apply()的遍历逻辑:指定axis=1时apply会自动逐行遍历DataFrame,不需要额外手写for循环
  • 传参逻辑完全错误:原有lambda的入参是单条行数据x,你写的函数没有对应定义该参数,同时col_score需要的string_const参数也漏传,还存在引号未闭合的语法问题
  • 无有效返回值:apply的运行结果没有赋值给目标列,函数也没有返回有效内容,无法得到正确输出

正确改写方案

首先定义和lambda入参逻辑完全一致的普通函数:

def cal_row_score(x, string_const):
    # 逻辑与原lambda完全等价,接收单行数据x和固定字符串参数
    return col_score(x['other_col'], string_const)

调用apply时通过args参数传入额外的固定参数即可:

df['my_col_score'] = df.apply(cal_row_score, axis=1, args=(string_const,))

内容的提问来源于stack exchange,提问作者Morello

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:15:08