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

如何用列名列表向Pandas的apply()传递多列参数?

解决方案

当然可以用列名列表来简化代码,不用逐个手动输入列名。具体实现方式如下:

  1. 定义目标列名列表:把需要传入函数的列名(比如A到J)存入一个列表
  2. 在apply中通过序列解包传入参数:利用*操作符,把列表对应列的行值拆成单个参数传入函数

示例代码:

# 定义包含A到J列的列表
target_cols = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']

# 用apply批量传入列值到myfunction
df['H'] = df.apply(lambda x: myfunction(*x[target_cols]), axis=1)

原理说明

  • x[target_cols]会按列表顺序提取当前行中对应列的值,返回一个有序的序列
  • *操作符将这个序列拆分为独立的参数,正好匹配myfunction需要的多个输入参数(对应原写法里的x.A、x.B等)

额外提示

  • 如果你的myfunction本身支持接收可迭代对象(比如列表)作为参数,也可以直接传入x[target_cols],无需添加*
  • 确保target_cols中的所有列名都存在于DataFrame中,否则会触发KeyError

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 07:52:36