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

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

1、引言


小屌丝:鱼哥,我最近在对搞数据对比,你有什么便捷的方法?

小鱼:斗胆问一句,数据量多少?

小屌丝:不多不多,几万条吧。

小鱼:确定几万条?

小屌丝:多了也不敢说啊。

小鱼:但说无妨

小屌丝:那这是你说的哈, 有一组数据是890W条数据

小鱼:奈斯,真棒,完美,超爽。

小屌丝:你很兴奋啊。

小鱼:不啊,我就喜欢看你被虐的样子。

小屌丝:别闹, 正儿八经的,相对比数据。

小鱼:好吧,那你说下,你想如何对比?

小屌丝:openpyxl怎么能先对比一列,然后根据这列为基准去对比该行?

小鱼:真棒,我会,但是我不想说

小屌丝:最近咱俩是不是没去洗澡了。

小鱼:额… 你有门票?

小屌丝:你告诉我怎么实现,我就有门票。

小鱼:君子一言。

小屌丝:澡堂见。



2229a447097443d2ba66627f5f846d94.gif


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知识。

目录
相关文章
|
1月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
837 1
|
1月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
294 0
|
28天前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
1月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
1月前
|
人工智能 Java Linux
Python高效实现Excel转PDF:无Office依赖的轻量化方案
本文介绍无Office依赖的Python方案,利用Spire.XLS、python-office、Aspose.Cells等库实现Excel与PDF高效互转。支持跨平台部署、批量处理、格式精准控制,适用于服务器环境及自动化办公场景,提升转换效率与系统稳定性。
228 7
|
2月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
2月前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
29天前
|
机器学习/深度学习 监控 数据挖掘
Python 高效清理 Excel 空白行列:从原理到实战
本文介绍如何使用Python的openpyxl库自动清理Excel中的空白行列。通过代码实现高效识别并删除无数据的行与列,解决文件臃肿、读取错误等问题,提升数据处理效率与准确性,适用于各类批量Excel清理任务。
294 0
|
2月前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
341 0

推荐镜像

更多