当前位置: 首页 > news >正文

比较两个csv文件的内容是否一致

可以使用 pandas快速、可靠地比较两个 CSV 文件内容是否一致。以下是几种常用方法,从简单行列比较,到精细字段逐个比较:


✅ 方法一:简单比较(结构 + 内容)

import pandas as pd# 加载两个 CSV 文件(确保读取方式相同)
df1 = pd.read_csv('file1.csv', dtype=str)
df2 = pd.read_csv('file2.csv', dtype=str)# 比较结构和内容是否完全一致
is_equal = df1.equals(df2)print("两个 CSV 内容是否完全一致?", is_equal)

✅ 方法二:逐行逐列对比,找出差异

import pandas as pddf1 = pd.read_csv('file1.csv', dtype=str)
df2 = pd.read_csv('file2.csv', dtype=str)# 确保两个 DataFrame 行列一致
if df1.shape != df2.shape:print("两个文件行数或列数不同!")
else:# 生成差异表diff = (df1 != df2)if diff.any().any():print("发现不一致的内容:")diff_locations = diff.stack()[diff.stack()]print(diff_locations)# 可显示不同值for idx, col in diff_locations.index:print(f"行 {idx}, 列 {col} 不同:file1='{df1.at[idx, col]}', file2='{df2.at[idx, col]}'")else:print("两个文件内容完全一致。")

✅ 方法三:文件哈希比较(最粗略)

适合文件内容相同但不比较顺序或格式:

import hashlibdef hash_file(path):with open(path, 'rb') as f:return hashlib.md5(f.read()).hexdigest()hash1 = hash_file('file1.csv')
hash2 = hash_file('file2.csv')print("文件内容是否一致:", hash1 == hash2)

但注意:

  • 字段顺序不同也会判定为不一致
  • 适合快速判断原始字节流是否一样

🔧 可选参数建议

如果你有换行、富文本或空白问题,推荐统一以下参数:

df1 = pd.read_csv('file1.csv', quoting=1, dtype=str, keep_default_na=False)
df2 = pd.read_csv('file2.csv', quoting=1, dtype=str, keep_default_na=False)

🧠 总结

方式判断精度适合情况
df1.equals(df2)精确快速判断是否完全相同
按单元格比较查找哪些值不同
文件哈希粗略大文件快速比对,结构不敏感

http://www.lryc.cn/news/581386.html

相关文章:

  • Python 机器学习核心入门与实战进阶 Day 3 - 决策树 随机森林模型实战
  • HTML初学者第三天
  • centos 7.6安装mysql8
  • 基于大模型的肾积水全周期预测与诊疗方案研究报告
  • 03每日简报20250705
  • Qt开发:QListWidget的介绍和使用
  • java整合itext pdf实现自定义PDF文件格式导出
  • 画笔的进化:生成式AI与艺术创造力的范式革命
  • 完成ssl不安全警告
  • 数据结构:数组:二分查找(Binary Search)
  • 用 Turbo Vision 2 为 Qt 6 控制台应用创建 TUI 字符 MainFrame
  • Java-继承
  • 隐马尔可夫模型:语音识别系统的时序解码引擎
  • nginx部署发布Vite项目
  • 苹果系统查看已连接Wi-Fi密码的实用指南
  • 408第三季part2 - 计算机网络 - 物理层
  • HarmonyOS学习2---工程目录UIAbility
  • 零基础保姆级本地化部署文心大模型4.5开源系列
  • c++文字游戏_闯关打怪
  • stm32的三种开发方式
  • 【论文解读】Referring Camouflaged Object Detection
  • Web3 Study Log 003
  • 《深度剖析:5G网络切片如何精准保障不同业务QoS需求》
  • 基于Java+SpringBoot的三国之家网站
  • ServiceNow CAD项目实战详细解析
  • 【算法刷题记录(简单题)002】字符串字符匹配(java代码实现)
  • Java 与 Vue 全栈开发:“一课一得“ 学习笔记系统实战
  • React Hooks全面解析:从基础到高级的实用指南
  • 【动态规划】笔记—完全背包问题
  • Spring中DelayQueue深度解析:从原理到实战(附结构图解析)