前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >超实用!使用Python快速对比两个Excel表格之间的差异

超实用!使用Python快速对比两个Excel表格之间的差异

作者头像
活用数据
发布2022-10-04 20:16:43
3.8K0
发布2022-10-04 20:16:43
举报
文章被收录于专栏:数据医生专栏数据医生专栏

主要介绍如何通过DeepDiff实现两个Excel文件数据的快速对比。

对于日常办公中需要处理数据的同学来说,有时候需要对比两个Excel表格(或者是数据库)的数据是否完全相同。

对于简单少量的数据,我们当然可以人工肉眼对比,但是如果数据量一大,那么最好还是借助工具实现。

这篇文章主要通过使用DeepDiff库,介绍了一种简单地对比两个Excel文件是否完全相同的方法。

首先,我们需要下载DeepDiff库:

代码语言:javascript
复制
pip install deepdiff

接着再进行导入:

代码语言:javascript
复制
from deepdiff import DeepDiff

DeepDiff简单使用

接下来我们创建4个简单的Excel数据,方便后续对比,通过pandas读取数据:

代码语言:javascript
复制
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文件对比、数据库数据对比等拓展操作。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • DeepDiff简单使用
  • 本文小结
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档