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

这是「活用数据」的第 11 篇原创文章

主要介绍如何通过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表格数据如下:
data1

data2

data3

data4

上面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”获取。

  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值