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

使用Pandas按指定列合并两个文件匹配结果全为NaN问题求助

Pandas合并文件匹配结果全为NaN的问题原因及修复方案

核心问题原因

  • 分隔符配置错误:输入文件为多空格分隔的字段,pd.read_csv默认使用逗号作为分隔符,直接读取会将整行内容识别为单个列,无法拆分出对应字段,无法完成匹配。
  • 表头识别错误:默认配置下pd.read_csv会将文件第一行识别为列名,你输入文件的第一行本身就是字段索引标识,属于数据的表头部分,未设置header=None时,pandas会生成字符串类型的列名('0'、'1'、'2'),你merge时指定的on=[1]是整数类型的列索引,和实际列名无法匹配,导致合并无匹配结果。

修复后代码

import pandas as pd

# 读取时指定空白分隔符、无自定义表头
lines_1 = pd.read_csv(file1, sep='\s+', header=None)
lines_2 = pd.read_csv(file2, sep='\s+', header=None)

merge_two_files = pd.merge(left=lines_1, right=lines_2, on=[1], how='left')
merge_two_files.columns = range(len(merge_two_files.columns))
# 如需导出可添加:merge_two_files.to_csv('file1#', sep='\t', index=False, header=False)

运行上述代码即可得到你预期的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:27:03