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

Python两个Excel多Sheet数据对比

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

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

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

第一步:安装必要的库

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

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

pip install pandas openpyxl

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

使用pandas.ExcelFile或pandas.read_excel直接读取多个Sheet的数据。zIB28资讯网——每日最新资讯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进行对比,寻找不一致的数据行。zIB28资讯网——每日最新资讯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后缀访问原始数据列。zIB28资讯网——每日最新资讯28at.com

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

第五步:保存对比结果

将对比结果保存到新的Excel文件中,便于后续分析或报告。zIB28资讯网——每日最新资讯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)

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

下面是将上述步骤整合在一起的完整代码示例:zIB28资讯网——每日最新资讯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的数据,找出差异并保存结果。这种方法特别适用于财务审计、数据清洗或任何需要跨数据集一致性检查的场景。zIB28资讯网——每日最新资讯28at.com

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

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

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

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

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

标签:
  • 热门焦点
  • 之家push系统迭代之路

    前言在这个信息爆炸的互联网时代,能够及时准确获取信息是当今社会要解决的关键问题之一。随着之家用户体量和内容规模的不断增大,传统的靠"主动拉"获取信息的方式已不能满足用
  • 微信语音大揭秘:为什么禁止转发?

    大家好,我是你们的小米。今天,我要和大家聊一个有趣的话题:为什么微信语音不可以转发?这是一个我们经常在日常使用中遇到的问题,也是一个让很多人好奇的问题。让我们一起来揭开这
  • 一条抖音4亿人围观 ! 这家MCN比无忧传媒还野

    作者:Hiu 来源:互联网品牌官01 擦边少女空降热搜,幕后推手曝光被网友誉为“纯欲天花板”的女网红井川里予,近期因为一组哥特风照片登上热搜,引发了一场互联网世界关于
  • ESG的面子与里子

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之三伏大幕拉起,各地高温预警不绝,但处于厄尔尼诺大“烤”之下的除了众生,还有各大企业发布的ESG报告。ESG是“环境保
  • 当家的盒马,加速谋生

    来源 | 价值星球Planet作者 | 归去来自己“当家”的盒马,开始加速谋生了。据盒马官微消息,盒马计划今年开放生鲜供应链,将其生鲜商品送往食堂。目前,盒马在上海已经与
  • 东方甄选单飞:有些鸟注定是关不住的

    作者:彭宽鸿来源:华尔街科技眼‍‍‍‍‍‍‍‍‍‍东方甄选创始人俞敏洪带队的“7天甘肃行”直播活动已在近日顺利收官。成立后一
  • 华为HarmonyOS 4升级计划公布:首批34款机型今日开启公测

    8月4日消息,今天下午华为正式发布了HarmonyOS 4系统,在更流畅的前提下,还带来了不少新功能,UI设计也有变化,会让手机焕然一新。华为宣布,首批机型将会在
  • 三星Galaxy Z Fold5今日亮相:厚度缩减但仍略显厚重

    据官方此前宣布,三星将于7月26日也就是今天在韩国首尔举办Unpacked活动,届时将带来带来包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
  • “买真退假” 这种“羊毛”不能薅

    □ 法治日报 记者 王春   □ 本报通讯员 胡佳丽  2020年初,还在上大学的小东加入了一个大学生兼职QQ群。群主“七王”在群里介绍一些刷单赚
Top