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

Python对比两个CSV的Sl_no列 提取csv2缺失值并输出新文件

Python实现两个CSV指定列缺失值查找

实现思路

不需要关心sl_no列在两个CSV中的位置索引,直接按列名读取两个文件的目标列值,通过集合差集计算出csv1中存在、但csv2中缺失的sl_no值,最终将结果导出为新文件。

操作步骤

  • 安装依赖库pandas,执行命令:
    pip install pandas
  • 运行以下代码,注意把代码里的文件路径替换成你自己的文件实际路径:
import pandas as pd

# 读取两个CSV源文件
df_csv1 = pd.read_csv("csv1.csv")
df_csv2 = pd.read_csv("csv2.csv")

# 统一处理列名:去除前后空格、转为小写,避免列名大小写/前后空格不一致导致的读取错误
df_csv1.columns = df_csv1.columns.str.strip().str.lower()
df_csv2.columns = df_csv2.columns.str.strip().str.lower()

# 提取两个表的sl_no列值,剔除空值后转为集合计算差集,得到csv2缺失的sl_no
set_sl_no1 = set(df_csv1["sl_no"].dropna())
set_sl_no2 = set(df_csv2["sl_no"].dropna())
missing_values = set_sl_no1 - set_sl_no2

# 将缺失值导出为新CSV文件
pd.DataFrame({"missing_sl_no": list(missing_values)}).to_csv("missing_result.csv", index=False)

# 控制台打印结果校验
print(f"已完成比对,csv2中缺失的sl_no共{len(missing_values)}个,结果已写入missing_result.csv")
print("缺失值列表:", sorted(missing_values))

说明

  • 代码自动按列名匹配目标字段,不管sl_no列在两个CSV中排第几列都可以正常识别,不需要手动指定列索引
  • 针对提供的样例数据,运行后得到的缺失值为20,符合预期
  • 如果文件中sl_no列存在空值需要纳入比对,删掉代码里的.dropna()即可
  • 如果CSV文件不在脚本运行的同目录下,把read_csv里的文件名替换成文件的完整绝对路径即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 23:18:09