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

Pandas执行DataFrame左连接时出现KeyError,请求协助排查问题

解决Pandas左连接时的KeyError问题

嘿,作为Pandas新手遇到这种报错太正常啦!我帮你梳理下左连接时出现KeyError的常见原因,结合你给出的代码片段来排查:

首先,KeyError最核心的原因就是你指定的连接键在其中一个DataFrame里不存在,咱们一步步来排查:

  • 先检查拼接列的创建是否完整
    你的代码里remediation_file['Concat ID-Resource'] = remediation_file['ID'] + remediation_file['Resource'...看起来截断了,是不是没写完?比如是不是应该是remediation_file['Resource']?如果这里的列名写错(比如少打了闭合括号、列名拼写错误),那这个拼接列根本没成功创建,后面用它做连接键自然会报错。

  • 确认连接键在两个DataFrame中都存在
    不管你是用拼接后的列还是原始列做连接,都要先确认列名是否正确。可以先打印两个DataFrame的列名列表,快速验证:

    print("remediation_file的列名:", remediation_file.columns.tolist())
    print("exception_file的列名:", exception_file.columns.tolist())
    

    注意Pandas对列名的大小写、空格、特殊字符都非常敏感,比如Resource和resource会被当成两个不同的列,列名前后的空格也会导致匹配失败。

  • 检查merge函数的参数是否正确
    左连接的正确写法要注意how='left'的参数,以及连接键的指定:

    • 如果两个DataFrame的连接键列名相同,用on参数:
      merged_df = pd.merge(remediation_file, exception_file, on='Concat ID-Resource', how='left')
      
    • 如果两边连接键列名不同,要分别用left_on和right_on指定:
      # 示例:左边是拼接列,右边是另一个列名
      merged_df = pd.merge(remediation_file, exception_file, left_on='Concat ID-Resource', right_on='Exception_Concat_ID', how='left')
      
  • 额外小技巧:清理列名的冗余空格
    有时候导入Excel文件时,列名前后会不小心带空格,你可以先清理一下:

    remediation_file.columns = remediation_file.columns.str.strip()
    exception_file.columns = exception_file.columns.str.strip()
    

先试试这些步骤,应该能找到问题所在啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:32:52