使用Python对比两个excel表格中的重复数据

几天前,单位同事遇到一个难题,需要将两个电子表格中的数万条数据进行对比,找到其中的重复数据,电子表格也有这个功能,但是因为数据量太大,起动对比之后计算机就卡死了。

我听了他的介绍之后,告诉他,我可以用Python试一试。

于是让他把数据传给我,开始研究起来,花了1个小时终于把代码调好了,总计23行代码,结果立马呈现出来了,小有成就。

但是还是不够完美,为了让程序能够适应所有要对比的数据,并生成一个新的电子表格,陆续又做了一些改进,总计32行代码,把代码晒出来,分享一下:

from openpyxl import load_workbook, Workbook        #导入模块

wb1 = load_workbook('D:\peple\excel01.xlsx')         #打开工作簿,并创建一个工作簿对象wb1
wb2 = load_workbook('D:\peple\excel02.xlsx')

a_wb = wb1['导出']        #创建一个工作表对象
b_wb = wb2['导出']

a_wb_max_row = len(a_wb['A'])
b_wb_max_row = len(b_wb['A'])

c=[]        #建立一个空列表,用于存放对比出来的相同数据

for row in a_wb.iter_cols(min_row=1, max_row=a_wb_max_row, min_col=1, max_col=1, values_only=True):    #历遍工作表对象制定区域的数值
    row1 = list(row)    #将元祖转换我列表
for row in b_wb.iter_cols(min_row=1, max_row=b_wb_max_row, min_col=1, max_col=1, values_only=True):
    row2 = list(row)

for i in row1:
    if i in row2:   #如果包含则返回循环
        break
    else:       #如果不包含,则把值保存到c列表中
        c.append(i)

wb3 = Workbook()    #创建新工作簿对象
c_wb = wb3.active   #创建活动工作表对象

for i in range(len(c)):     #将列表分行写入工作表对象
    d=[c[i]]
    c_wb.append(d)

wb3.save('D:\peple\mynewdata.xlsx')       #保存数据到新工作簿

  • 7
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟杜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值