超实用!使用Python快速对比两个Excel表格之间的差异
主要介绍如何通过DeepDiff实现两个Excel文件数据的快速对比。
对于日常办公中需要处理数据的同学来说,有时候需要对比两个Excel表格(或者是数据库)的数据是否完全相同。
对于简单少量的数据,我们当然可以人工肉眼对比,但是如果数据量一大,那么最好还是借助工具实现。
这篇文章主要通过使用DeepDiff
库,介绍了一种简单地对比两个Excel文件是否完全相同的方法。
首先,我们需要下载DeepDiff
库:
pip install deepdiff
接着再进行导入:
from deepdiff import DeepDiff
DeepDiff简单使用
接下来我们创建4个简单的Excel数据,方便后续对比,通过pandas
读取数据:
import pandas as pd
df1 = pd.read_excel('data1.xlsx')
df2 = pd.read_excel('data2.xlsx')
df3 = pd.read_excel('data3.xlsx')
df4 = pd.read_excel('data4.xlsx')
4个Excel表格数据如下:
上面4个简单示例数据中,我们可以非常明显地看出来,data1跟data2时完全一致的,而data3跟data4只是数据的行顺序跟列顺序不一致,其本质上还是一致的,在我们实际工作中,我们希望的出来的结果也是data3跟data4是一致的。
首先,我们直接对两个不一样的DataFrame进行对比:
对比结果为{}
,这在DeepDiff
中是表示没有差异的意思,但是,这个结果显然不符合实际,因为我们的data1跟data3其实是完全不一样的才对。
这是因为DeepDiff
并不支持DataFrame对象的比较。
为了能够使用DeepDiff
,我们可以把DataFrame对象转成字典对象。
可以看到,转成字典之后我们成功地对data1和data2进行比较,并给出了正确的结果:
为了验证,我们再拿data1和data3进行比较:
很明显,这两个对象是有区别的,没有任何问题。
接下来进入我们的重头戏,对比data3和data4,为了对比这两个对象,我们可以先把数据转成列表,然后再设置DeepDiff
中的ignore_order
参数忽略字典元素的顺序:
可以看到,结果非常简单完美地实现了我们的对比需求。
本文小结
本文只是对DeepDiff
的使用场景进行了简单介绍,实际上基于这个Python库,我们还可以实现诸如JSON文件对比、数据库数据对比等拓展操作。
相关文章
- python常用面试题_Python+Selenium 常见面试题整理[通俗易懂]
- python中dtype什么意思_NumPy Python中的数据类型对象(dtype)
- python hashlib_Python hashlib模块实例使用详解
- python监控网页内容变化_使用Python监控文件内容变化代码实例
- Python的正则表达式_python正则表达式例子
- python里面的缩进是什么意思_Python缩进规则(一看即懂)[通俗易懂]
- python读取excel并写入excel_python如何读取文件夹下的所有文件
- 使用Python批量实现某一Excel文件中每3行数据存一个Excel文件
- 【测试开发】python系列教程:Python数据类型转换
- python-Python与SQLite数据库-使用Python执行SQLite查询(一)
- python通过openpyxl生成Excel文件详解编程语言
- Python学习:6.python内置函数详解编程语言
- 使用Python执行Linux命令的方法(python调用linux命令)
- 使用Python操作MySQL数据库快速上手(python访问mysql数据库)
- Linux下使用Python开发体验之旅(linux使用python)
- python使用Python轻松操作Redis(redis-)
- 如何使用Excel连接MySQL数据库(excel连接mysql数据库)
- 使用Excel快速读取MySQL数据(excel读取mysql)
- 使用Python连接SQL Server数据库(python连接sqlserver)
- 使用Python连接MySQL数据库,实现高效数据交互(python连接mysql)
- Python中使用MySQL数据库的操作技巧(mysql_python)
- python中查找excel某一列的重复数据剔除之后打印
- python中使用xlrd、xlwt操作excel表格详解