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

如何使用Python比较两个CSV文件并生成匹配校验标识列

Python CSV字段匹配校验实现方案

依赖说明

  • 需要用到pandas库处理CSV数据,未安装可执行命令:pip install pandas

完整实现代码

import pandas as pd

# 读取两个CSV文件,round强制转字符串避免前导零丢失导致匹配失败
df_base = pd.read_csv('file.csv', dtype={'round': str})
df_dup = pd.read_csv('Dupfile.csv', dtype={'round': str})

# 基准表按round去重,确保每个round仅对应一条基准数据
df_base = df_base.drop_duplicates(subset='round', keep='first')

# 定义需要校验的字段列表
check_cols = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth']
# 构造基准映射字典:key为round,value为对应6个校验字段的元组
base_map = df_base.set_index('round')[check_cols].apply(tuple, axis=1).to_dict()

# 逐行对比生成Correct列
df_dup['Correct'] = df_dup.apply(
    lambda row: 1 if tuple(row[check_cols]) == base_map.get(row['round'], ()) else 0,
    axis=1
)

# 输出结果文件,utf-8-sig编码避免中文乱码
df_dup.to_csv('result_Dupfile.csv', index=False, encoding='utf-8-sig')

逻辑说明

  • 预构造基准映射字典,查询复杂度为O(1),比逐行遍历基准表对比效率更高,适配大文件场景
  • 对比时将待校验行的6个字段打包成元组与基准元组直接对比,只要有一个字段值不一致就赋值0,全部匹配赋值1
  • 兼容Dupfile中同一个round对应多条记录的场景,每条记录会单独完成校验
  • 输出保留Dupfile原有全部字段,仅新增Correct列,符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:06:03