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

pandas1.1.5调用DataFrame.assign报AttributeError是什么原因?

问题排查与修复

错误原因

  • 该报错和pandas版本无关,是assign方法的调用不符合语法规则:
    pandas的assign方法要求传入关键字参数,格式为df.assign(列名=列值),必须同时指定新增列的名称和对应取值。你代码中仅传入了表示列名的变量item,没有指定该列的取值,不符合参数要求,因此触发报错。
  • 注意:如果要使用变量作为新增列名,不能直接写df.assign(item=xxx),该写法会固定列名为字符串'item',而非item变量的实际值,需要用字典解包的方式传参。

修复代码

假设缺失的列需要填充默认值(可根据业务需求替换默认值),修正后代码如下:

def check_header(header, df):
    print("Header : ",header)
    for item in header:
        if not item in df.columns:
            # 此处示例默认填充None,可替换为0、空字符串等其他取值
            df = df.assign(**{item: None})
    return df[header]

额外排查点

如果修正用法后仍出现该属性报错,可排查两个场景:

  • 确认代码中的df确实是pandas DataFrame对象,没有被其他赋值操作覆盖为其他类型的变量
  • 执行print(pd.__version__)确认当前运行环境的pandas版本为1.1.5,避免存在多Python环境版本冲突的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:27:04