Python CSV合并列时触发KeyError的排查与解决
解决Pandas合并列时的KeyError问题
问题根源
你遇到的KeyError是因为CSV文件读取时分隔符设置错误:代码里的sep=r'\\t'会匹配\\t(两个反斜杠加字母t),而非实际的制表符,导致Pandas把整个文件当成一列读取,自然找不到Name_1、Name_2、Name_3这些列。
修正方案
1. 修复分隔符参数
将读取CSV的代码中,分隔符改为正确的制表符格式:
- 用原始字符串:
sep=r'\t' - 或直接用转义字符:
sep='\t'
2. 优化合并逻辑(可选但推荐)
原始合并逻辑会把空值转为'nan'字符串,建议先填充空值,再去除合并后字符串的首尾多余空格,避免无效内容。
修正后的完整代码
import pandas as pd # 正确读取制表符分隔的CSV文件 df = pd.read_csv("Test.csv", sep=r'\t', engine='python') # 填充空值→合并列→去除首尾空格 df['Name'] = df[['Name_1', 'Name_2', 'Name_3']].fillna('').apply(' '.join, axis=1).str.strip() # 保存处理后的文件 df.to_csv("Test-new.csv", index=False)
验证步骤(可选)
如果仍有疑问,可以先打印读取后的列名,确认列是否正确识别:
print(df.columns)
正常输出应包含Name_1、Name_2、Name_3,说明文件读取正确。
内容的提问来源于stack exchange,提问作者Digisven
相关产品推荐
相关产品推荐

