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

如何给函数传递多参数并接收多返回值 解决pandas apply使用报错

错误原因

apply设置axis=1按行遍历DataFrame时,lambda函数接收的参数x代表当前行的单行Series对象,你原代码中直接传入df['description']和df['title'],实际是把整列的Series对象传给了myfunc,而非当前行对应的单个字符串值,因此触发了类型不匹配的报错。

修复代码

把lambda中的取值对象从df替换为当前行对象x即可:

df['col1'], df['col2'] = zip(*df.apply(lambda x: myfunc(x['description'], x['title']), axis=1))

运行逻辑说明

  • 每行遍历时x['description']、x['title']会取出当前行对应列的单个值,符合myfunc的参数要求
  • 每行执行myfunc得到的二元组会被zip(*...)自动解包为两个独立的元组,刚好对应赋值给df的两个新列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:24:04