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

Pandas双文件数据匹配合并结果不符合预期问题咨询

两个文件数据匹配合并问题修复方案

原代码核心错误点

  • 文件读取逻辑错误:两个打开的文件重命名为同一个变量file1,无法正确读取file2内容;原文件为空格分隔,错误使用逗号分割行内容
  • 变量名混乱:定义的DataFrame变量为df_file1、df_file2,后续调用时错误使用未定义的file1、file2变量
  • 匹配逻辑错误:一是正则提取规则有问题,短key会先匹配长key的前缀导致匹配结果错误;二是未将file2提取的匹配键作为df_file2的正式列,合并时关联逻辑错误导致出现重复匹配行
  • 输出参数错误:分隔符设置不符合要求,未关闭自动引号添加逻辑

修复后可运行代码

import pandas as pd
import numpy as np

# 读取空格分隔的两个文件,跳过自带表头自行定义列名
df1 = pd.read_csv('file1', sep='\s+', names=['key', 'val1'], skiprows=1)
df2 = pd.read_csv('file2', sep='\s+', names=['raw_key', 'val2'], skiprows=1)

# 直接提取file2中DD=后的内容作为匹配键,避免正则子串匹配错误
df2['key'] = df2['raw_key'].str.replace('DD=', '', regex=False)

# 基于key列左连接合并两个表
merge_df = df1.merge(df2[['key', 'val2']], on='key', how='left')

# 空值填充为要求的NaN,输出时关闭引号、索引和表头
merge_df = merge_df.fillna('NaN')
merge_df.to_csv('file1#', sep='\t', index=False, header=False, quoting=3)

效果说明

修复后输出的file1#内容完全符合预期,不会出现重复行、多余引号的问题,未匹配到的TPO对应值为NaN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:57:03