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

Python如何对比CSV文件两列数据,输出首列不在次列的不匹配值

实现方案(Python版,新手可直接使用)

无需安装额外第三方工具,仅用Python自带模块即可完成需求,处理10万行以内的数据都没有性能问题。


前置说明

  • 若你的CSV文件是逗号分隔,修改代码里的分隔符参数为,即可;如果是制表符分隔则改成\t
  • 默认区分大小写比对,比如Valuec和ValueC会判定为不匹配,需要忽略大小写可修改代码里的对应参数
  • 若运行提示编码错误,把代码里的encoding='utf-8'改成encoding='gbk'重试即可

完整可运行代码

import csv

# 按需修改以下参数即可
INPUT_FILE = "你的输入文件完整路径.csv" # 比如"C:/Users/xx/Desktop/源数据.csv"
OUTPUT_FILE = "results.csv"
DELIMITER = " " # CSV列分隔符,逗号分隔填',',制表符填'\t'
IGNORE_CASE = False # 不需要区分大小写比对就改成True

# 读取第二列所有值存入集合(查找速度远快于列表)
col2_values = set()
with open(INPUT_FILE, 'r', encoding='utf-8') as f:
    reader = csv.reader(f, delimiter=DELIMITER)
    for row in reader:
        # 跳过空行/无第二列的行
        if len(row) >= 2 and row[1].strip():
            val = row[1].strip()
            col2_values.add(val.lower() if IGNORE_CASE else val)

# 遍历第一列,筛选出第二列不存在的值
result = []
with open(INPUT_FILE, 'r', encoding='utf-8') as f:
    reader = csv.reader(f, delimiter=DELIMITER)
    for row in reader:
        # 跳过第一列为空的行
        if len(row) >= 1 and row[0].strip():
            col1_val = row[0].strip()
            check_val = col1_val.lower() if IGNORE_CASE else col1_val
            if check_val not in col2_values:
                result.append([col1_val])

# 写入结果文件
with open(OUTPUT_FILE, 'w', encoding='utf-8', newline='') as f:
    writer = csv.writer(f)
    # 不需要表头可以注释掉下面这行
    writer.writerow(["第一列中未在第二列匹配到的值"])
    writer.writerows(result)

print(f"处理完成,共找到{len(result)}个不匹配值,结果已保存到{OUTPUT_FILE}")

使用步骤

  1. 安装Python环境:官网下载安装包时勾选Add Python to PATH选项,一路默认安装即可
  2. 把上面的代码复制到记事本,保存为csv_compare.py,保存类型选择「所有文件」,编码选utf-8
  3. 修改代码里的输入文件路径为你实际的CSV文件路径
  4. 按Win+R输入cmd打开命令提示符,切换到py文件保存的文件夹,输入python csv_compare.py运行即可

示例运行结果

针对你给出的示例数据,第二列有效值为ValueB、ValueC、ValueA、ValueD,最终会输出到results.csv的第一列值为:

  • Valuec
  • ValueF
  • ValueG
  • ValueH
  • ValueZ

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 04:15:03