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

如何在Python中按列名自动匹配参数为DataFrame行应用函数?

Python中实现类似R的pmap自动匹配函数参数的方法

你可以利用pandas的apply结合**字典解包的方式,让函数自动匹配列名对应的参数,无需手动指定每个参数。具体实现如下:

方法1:apply配合字典解包

由于apply传入的row对象可转换为字典(row.to_dict()),使用**将字典解包为函数的关键字参数后,函数会自动根据参数名匹配对应的列值:

df['result_f1'] = df.apply(lambda row: f1(**row.to_dict()), axis='columns')
df['result_f2'] = df.apply(lambda row: f2(**row.to_dict()), axis='columns')

运行后得到的结果:

print(df)
#    A  B  C  result_f1  result_f2
# 0  1  2  3          4          1
# 1  4  5  6         10          1
# 2  7  8  9         16          1

这种方式不需要手动指定每个参数,只要函数参数名和DataFrame列名一致,就能自动完成匹配。

方法2:封装通用工具函数

如果需要多次调用不同函数,可以封装一个通用函数,减少重复代码:

def apply_func(df, func):
    return df.apply(lambda row: func(**row.to_dict()), axis='columns')

# 调用示例
df['result_f1'] = apply_func(df, f1)
df['result_f2'] = apply_func(df, f2)

补充说明

虽然apply的效率不如向量化操作,但如果函数逻辑复杂、暂时无法实现向量化,这种方式既能保证代码简洁,又能保留原有函数定义便于调试,和R语言中pmap的使用逻辑一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 12:15:04