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

Python读取txt文件并基于共享列合并时遇KeyError问题求助

解决txt文件合并时的KeyError问题

问题分析

你的代码里有几个关键问题导致报错:

  1. 变量名不匹配:读取第一个文件时赋值给了df,但合并时用的是df1,变量引用错误。
  2. 分隔符参数错误:sep='delimiter'是错误用法,pandas会把整行内容当成单一列读取,自然找不到KeyNumber这类表头。
  3. 列名不一致:错误提示是KeyError: 'KeyName',但代码里写的是on='KeyNumber',要么是你代码写错了列名,要么是实际文件里的共享列名是KeyName。

修复步骤

  1. 修正变量名:保证读取后的DataFrame变量名和合并时用的一致:
df1 = pd.read_csv('file1.txt', sep='\t')  # 分隔符根据实际文件修改
df2 = pd.read_csv('file2.txt', sep='\t')
  1. 指定正确分隔符:根据txt文件的实际分隔方式调整sep参数:

    • 制表符分隔:sep='\t'
    • 逗号分隔:sep=','
    • 多空格分隔:sep='\s+'
      拿不准的话可以打开txt文件直接看内容的分隔符号。
  2. 确认共享列名:检查两个文件的表头,保证共享列名称完全一致(注意大小写、空格),比如错误提示是KeyName,合并时就写:

output1 = pd.merge(df1, df2, on='KeyName', how='inner')
  1. 验证表头识别情况:读取文件后先打印列名确认,避免拼写错误:
print(df1.columns)
print(df2.columns)

完整示例代码

import pandas as pd

# 读取文件,替换为实际分隔符
df1 = pd.read_csv('file1.txt', sep='\t')
df2 = pd.read_csv('file2.txt', sep='\t')

# 查看实际识别到的列名
print("file1列名:", df1.columns)
print("file2列名:", df2.columns)

# 合并文件,替换为实际共享列名
output1 = pd.merge(df1, df2, on='KeyName', how='inner')

# 查看合并结果
print(output1.head())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:09:21