当前位置:首页 > 科技  > 软件

Python两个Excel多Sheet数据对比

来源: 责编: 时间:2024-07-16 16:58:29 729观看
导读在数据处理与分析中,经常需要比较来自不同来源的数据集,特别是在处理涉及多个Excel工作簿和工作表的场景时。Python的Pandas库提供了强大的工具,可以帮助我们高效地完成这一任务。下面,我们将一步步引导你如何使用Python

在数据处理与分析中,经常需要比较来自不同来源的数据集,特别是在处理涉及多个Excel工作簿和工作表的场景时。Python的Pandas库提供了强大的工具,可以帮助我们高效地完成这一任务。下面,我们将一步步引导你如何使用Python对比两个Excel文件中多个Sheet的数据。Cia28资讯网——每日最新资讯28at.com

Cia28资讯网——每日最新资讯28at.com

第一步:安装必要的库

确保你的Python环境中已安装pandas和openpyxl。如果没有安装,可以通过以下命令安装:Cia28资讯网——每日最新资讯28at.com

Cia28资讯网——每日最新资讯28at.com

pip install pandas openpyxl

第二步:读取Excel文件中的多个Sheet

使用pandas.ExcelFile或pandas.read_excel直接读取多个Sheet的数据。Cia28资讯网——每日最新资讯28at.com

import pandas as pd# 读取第一个Excel文件的所有Sheetxlsx1 = pd.ExcelFile('file1.xlsx')sheets1 = {sheet_name: xlsx1.parse(sheet_name) for sheet_name in xlsx1.sheet_names}# 读取第二个Excel文件的所有Sheetxlsx2 = pd.ExcelFile('file2.xlsx')sheets2 = {sheet_name: xlsx2.parse(sheet_name) for sheet_name in xlsx2.sheet_names}

第三步:对比数据

对比两个Excel文件中相同名称的Sheet。我们可以逐个Sheet进行对比,寻找不一致的数据行。Cia28资讯网——每日最新资讯28at.com

# 创建一个空的字典来存储对比结果comparison_results = {}for sheet_name in sheets1.keys():    if sheet_name in sheets2:        # 如果两个文件都有相同的Sheet,则进行对比        df1 = sheets1[sheet_name]        df2 = sheets2[sheet_name]        # 比较两个DataFrame        comparison = df1.merge(df2, how='outer', indicator=True)        comparison_results[sheet_name] = comparison[comparison['_merge'] != 'both']

第四步:分析差异

上述对比会返回一个新DataFrame,其中包含标记为left_only或right_only的行,表示只在左侧或右侧数据集中存在。此外,还可以通过left和right后缀访问原始数据列。Cia28资讯网——每日最新资讯28at.com

# 分析差异for sheet_name, result in comparison_results.items():    if not result.empty:        print(f"Differences found in '{sheet_name}':")        print(result)

第五步:保存对比结果

将对比结果保存到新的Excel文件中,便于后续分析或报告。Cia28资讯网——每日最新资讯28at.com

with pd.ExcelWriter('comparison_results.xlsx') as writer:    for sheet_name, result in comparison_results.items():        if not result.empty:            result.to_excel(writer, sheet_name=sheet_name, index=False)

完整代码示例Cia28资讯网——每日最新资讯28at.com

下面是将上述步骤整合在一起的完整代码示例:Cia28资讯网——每日最新资讯28at.com

import pandas as pd# 读取Excel文件xlsx1 = pd.ExcelFile('file1.xlsx')xlsx2 = pd.ExcelFile('file2.xlsx')# 读取所有Sheetsheets1 = {sheet_name: xlsx1.parse(sheet_name) for sheet_name in xlsx1.sheet_names}sheets2 = {sheet_name: xlsx2.parse(sheet_name) for sheet_name in xlsx2.sheet_names}# 创建一个空的字典来存储对比结果comparison_results = {}# 对比数据for sheet_name in sheets1.keys():    if sheet_name in sheets2:        df1 = sheets1[sheet_name]        df2 = sheets2[sheet_name]        comparison = df1.merge(df2, how='outer', indicator=True)        comparison_results[sheet_name] = comparison[comparison['_merge'] != 'both']# 保存对比结果with pd.ExcelWriter('comparison_results.xlsx') as writer:    for sheet_name, result in comparison_results.items():        if not result.empty:            result.to_excel(writer, sheet_name=sheet_name, index=False)

通过上述步骤,你可以有效地对比两个Excel文件中多个Sheet的数据,找出差异并保存结果。这种方法特别适用于财务审计、数据清洗或任何需要跨数据集一致性检查的场景。Cia28资讯网——每日最新资讯28at.com

希望这篇指南能够帮助你在Python中处理复杂的Excel数据对比任务。Cia28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-101107-0.htmlPython两个Excel多Sheet数据对比

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 智启万象|2024 Google 谷歌开发者大会邀你报名「畅享家」

下一篇: 一图看懂八大扩展系统的方法

标签:
  • 热门焦点
  • vivo TWS Air开箱体验:真轻 臻好听

    在vivo S15系列新机的发布会上,vivo的最新款真无线蓝牙耳机vivo TWS Air也一同发布,本次就这款耳机新品给大家带来一个简单的分享。外包装盒上,vivo TWS Air保持了vivo自家产
  • 7月安卓手机性能榜:红魔8S Pro再夺榜首

    7月份的手机市场风平浪静,除了红魔和努比亚带来了两款搭载骁龙8Gen2领先版处理器的新机之外,别的也想不到有什么新品了,这也正常,通常6月7月都是手机厂商修整的时间,进入8月份之
  • 分布式系统中的CAP理论,面试必问,你理解了嘛?

    对于刚刚接触分布式系统的小伙伴们来说,一提起分布式系统,就感觉高大上,深不可测。而且看了很多书和视频还是一脸懵逼。这篇文章主要使用大白话的方式,带你理解一下分布式系统
  • 深度探索 Elasticsearch 8.X:function_score 参数解读与实战案例分析

    在 Elasticsearch 中,function_score 可以让我们在查询的同时对搜索结果进行自定义评分。function_score 提供了一系列的参数和函数让我们可以根据需求灵活地进行设置。近期
  • 为什么你不应该使用Div作为可点击元素

    按钮是为任何网络应用程序提供交互性的最常见方式。但我们经常倾向于使用其他HTML元素,如 div span 等作为 clickable 元素。但通过这样做,我们错过了许多内置浏览器的功能。
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 雅柏威士忌多款单品价格大跌,泥煤顶流也不香了?

    来源 | 烈酒商业观察编 | 肖海林今年以来,威士忌市场开始出现了降温迹象,越来越多不断暴涨的网红威士忌也开始悄然回归市场理性。近日,LVMH集团旗下苏格兰威士忌品牌雅柏(Ardbeg
  • 自研Exynos回归!三星Galaxy S24系列将提供Exynos和骁龙双版本

    年初,全新的三星Galaxy S23系列发布,包含Galaxy S23、Galaxy S23+和Galaxy S23 Ultra三个版本,全系搭载超频版骁龙8 Gen 2,虽同样采用台积电4nm工艺制
  • iQOO 11S评测:行业唯一的200W标准版旗舰

    【Techweb评测】去年底,iQOO推出了“电竞旗舰”iQOO 11系列,作为一款性能强机,该机不仅全球首发2K 144Hz E6全感屏,搭载了第二代骁龙8平台及144Hz电竞
Top