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

如何获取传入自定义函数的所有dataframe参数名称用于reduce左连接操作

解决方案

你代码里的*args本身就是所有传入函数的参数按顺序组成的元组,直接替换掉示例里的all_dfs即可正常运行。你可以额外添加参数校验逻辑,避免传入非DataFrame类型的参数导致报错。

修改后的完整代码如下:

import pandas as pd
from functools import reduce

def myfunc(*args):
     # 可选参数校验,保证入参合法性
     for df in args:
         if not isinstance(df, pd.DataFrame):
             raise TypeError("所有入参必须为pandas.DataFrame类型")
     result = reduce(
         lambda left, right: pd.merge(left, right, on=["p_key"], how="left"),
         args
     )
     return result

调用示例

# 构造测试数据
df1 = pd.DataFrame({"p_key": [1,2,3], "col1": ["a","b","c"]})
df2 = pd.DataFrame({"p_key": [1,2,4], "col2": ["d","e","f"]})
df3 = pd.DataFrame({"p_key": [1,3,4], "col3": ["g","h","i"]})

# 传入任意数量带p_key字段的DataFrame即可完成批量左连接
merged_df = myfunc(df1, df2, df3)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:09:01