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

如何在Pandas中给apply函数传入列与外部变量参数?

在Pandas Apply中传递外部参数的解决方案

没问题,这其实很容易解决!Pandas的apply方法本身就支持传递额外的外部参数,这里有两种常用且清晰的实现方式,结合你的代码示例给你演示:

方法1:使用apply的args参数

你可以直接利用apply自带的args参数,把外部变量以元组的形式传递给自定义函数。需要先改造你的函数,增加对应的参数:

import pandas as pd 
data_dict = {'a':[-2,5,4,-6], 'b':[4,4,5,-8]}  # 建议不要用dict作为变量名,避免覆盖内置类型
df = pd.DataFrame(data_dict) 

# 改造函数,新增外部参数multiplier
def DummyFunction(row, multiplier): 
    return row['a'] * row['b'] * multiplier

# 定义你的外部变量
external_multiplier = 2

# 通过args传递外部参数,注意元组单元素要加逗号
df['Dummy1'] = df.apply(DummyFunction, axis=1, args=(external_multiplier,))
print(df)

说明:

  • args接受一个元组,里面的元素会按顺序传递给函数中除了row之外的参数
  • 如果有多个外部参数,只需要扩展元组即可,比如args=(var1, var2),同时函数也要对应增加参数

方法2:用Lambda函数做中间包装

如果你觉得args的写法不够直观,也可以用lambda函数作为中间层,把row和外部变量一起传递给自定义函数:

import pandas as pd 
data_dict = {'a':[-2,5,4,-6], 'b':[4,4,5,-8]} 
df = pd.DataFrame(data_dict) 

def DummyFunction(row, multiplier): 
    return row['a'] * row['b'] * multiplier

external_multiplier = 2

# 用lambda包装,传递row和外部变量
df['Dummy1'] = df.apply(lambda row: DummyFunction(row, external_multiplier), axis=1)
print(df)

说明:

  • lambda在这里起到了“适配器”的作用,把apply默认传递的row参数,和你需要的外部变量一起传给目标函数
  • 这种写法在参数较多或者需要调整参数顺序时,可读性会更好

两种方法都能完美解决你的问题,你可以根据自己的习惯选择其中一种~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:15:36