Python3,使用openpyxl进行excel数据对比,反手一个赞。

news/2024/7/7 20:06:58

openpyxl技能

  • 1、引言
  • 2、代码实战
    • 2.1 安装
    • 2.2 代码实战
      • 2.2.1 思路
      • 2.2.2 代码示例
  • 3、总结

1、引言

小屌丝:鱼哥,我最近在对搞数据对比,你有什么便捷的方法?
小鱼:斗胆问一句,数据量多少?
小屌丝:不多不多,几万条吧。
小鱼:确定几万条?
小屌丝:多了也不敢说啊。
小鱼:但说无妨
小屌丝:那这是你说的哈, 有一组数据是890W条数据
小鱼:奈斯,真棒,完美,超爽。
小屌丝:你很兴奋啊。
小鱼:不啊,我就喜欢看你被虐的样子。
小屌丝:别闹, 正儿八经的,相对比数据。
小鱼:好吧,那你说下,你想如何对比?
小屌丝:openpyxl怎么能先对比一列,然后根据这列为基准去对比该行?
小鱼:真棒,我会,但是我不想说
小屌丝:最近咱俩是不是没去洗澡了。
小鱼:额… 你有门票?
小屌丝:你告诉我怎么实现,我就有门票。
小鱼:君子一言。
小屌丝:澡堂见。
在这里插入图片描述

2、代码实战

2.1 安装

当然,涉及到第三方库, 老规矩,安装走起。

pip install openpyxl

然后就是等待着安装。

其它安装方式,直接看这两篇:

  • Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!
  • Python3:我低调的只用一行代码,就导入Python所有库!

安装完成,我们就可以进行代码编写了。

2.2 代码实战

2.2.1 思路

在写代码前,我们要捋清楚思路, 总共分四步:

  • 1、读取excel表格数据,并将数据保存在一个列表中。
  • 2、调用 merge_cells 函数,将需要对比的两列数据作为参数传入,并设置参数 merge_cells 为 True,表示要对齐两列数据。
  • 3、循环遍历列表中的每一行数据,对比该行与对齐列的数据是否一致,如果不一致则记录下来。
  • 4、循环结束后,找到记录中不一致的行,将不一致的数据用新列表的形式保存起来即可。

捋清思路后,我们就开始下一步操作:撸代码。

2.2.2 代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-05-25
# @Author : Carl_DJ

'''
实现功能:
	使用openpyxl对excel表中的数据进行对比
'''
import openpyxl

# 读取excel表格数据,并将数据保存在一个列表中
data = []
with openpyxl.load_workbook('example.xlsx') as wb:
    sheet = wb['Sheet1']
    for row in sheet.iter_rows(min_row=2, values_only=True):
        row_data = []
        for cell in row:
            if cell.value is not None:
                row_data.append(cell.value)
        data.append(row_data)

# 对比需要对齐的两列数据
merged_data = []
for row_data in data:
    # 设置参数,两列数据对齐
    merge_cells = True
    for col_idx in range(len(row_data[0])):
        col_data = row_data[col_idx]
        for col_idx_2 in range(len(col_data)):
            if col_data[col_idx_2] != col_data[col_idx_2 + 1]:
                merge_cells = False
                break
    if merge_cells:
        # 循环遍历列表中的每一行数据,对比该行与对齐列的数据是否一致
        for cell_idx in range(len(col_data)):
            cell_data = col_data[cell_idx]
            for row_idx in range(len(merged_data)):
                if cell_data == merged_data[row_idx][cell_idx]:
                    # 如果一致,则将不一致的数据用新列表的形式保存起来
                    merged_data[row_idx][cell_idx] = [cell_data]
                    break

3、总结

今天主要使用openpyxl对excel表中的数据进行对比。
在实际的工作中,这种数据对比很常见,用好python,让你的工作量递减。
我是小鱼

  • CSDN 博客专家
  • 阿里云 专家博主
  • 51CTO 博客专家
  • 51认证讲师
  • 认证金牌面试官
  • 职场面试培训规划师

关注我,带你学习更多更有趣的Python知识。


http://lihuaxi.xjx100.cn/news/1182095.html

相关文章

首届中国元宇宙应用场景大赛成果发布暨河畔元宇宙论坛圆满落幕

5月26日下午,首届中国元宇宙应用场景大赛成果发布暨河畔元宇宙论坛在北京城市副中心圆满落幕。活动在通州区委、区政府指导下,由北京大数据协会元宇宙专业委员会主办,中国质量认证中心、绿色智能新经济产业联盟、中关村元宇宙产业发展联盟协办…

2023年上半年软件设计师中级学习总结(超详细)

目录 前言 一、背景1.1上次考试感受:1.2这次考试感受:1.3方法: 二、 过程2.1计算机网络概论计算机组成数据表示相关知识校验码相关知识计算机体系结构网络体系结构OSI/RM和TCP/IP计算机安全性可靠性性能评价 2.2 程序设计语言基础知识编译和解…

为什么pnpm比npm、yarn使用更好

performant npm ,意味高性能的 npm。pnpm由 npm/yarn 衍生而来,解决了 npm/yarn 内部潜在的bug,极大的优化了性能,扩展了使用场景。被誉为"最先进的包管理工具"。 我们按照包管理工具的发展历史开始讲起: n…

对于2023年参加国家计算机软考系统分析师的感想

文章目录 前言系分简介系分知识点今年的题型综合知识(上午选择题)案例分析(下午简答分析题)论文(下午小作文) 写在最后 前言 23年3月27日参加了国家计算机软考系统分析师,考完后很多的题库网站就有小道估分了。当然&a…

JS逆向-加密参数定位方法总结(1)

前言 本文是该专栏的第50篇,后面会持续分享python爬虫干货知识,记得关注。 爬虫工程师在处理爬虫项目的时候,难免会遇到需要JS逆向的平台。那么对于需要JS逆向的网站,其加密参数需要怎样快速去定位呢?笔者将目前常用的几种方法总结为上下两篇,总的来说,不同的定位方法其…

java自研udp负载均衡服务实现gb28181的sip信令代理

文章目录 参考一、国标gb28181信令交互流程1、注册2、心跳3、查询设备目录 queryCatalog3、服务端点播4、云台控制5、目录订阅6、移动位置订阅 MobilePosition7、布防和报警订阅8、级联配置9、级联下级向上级推送通道二、udp协议1、udp协议理论UDP的客户端通信建立步骤UDP的服务…

[深度学习]stable diffusion的提示词总结

1、提升画面质量的提示词: HDR, HD,UHD, 64K (HDR、UHD、4K、8K和64K) 表示图片效果,带来的改变可以试试,不过也会影响渲染出图的时间,会根据你要求的画面质量延长时间。 Highly detailed 增加很多的细节,有…

App开发需要了解的基本开发技术

近年来,随着智能手机的普及和互联网的高速发展,移动端 APP应用开发越来越受到人们的欢迎。现在,应用程序开发已成为一项热门职业,并成为许多人寻求高薪职业的首选。然而,要成功地在移动端 APP中应用程序,开…