成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python兩個(gè)Excel多Sheet數(shù)據(jù)對(duì)比

開(kāi)發(fā) 前端
在數(shù)據(jù)處理與分析中,經(jīng)常需要比較來(lái)自不同來(lái)源的數(shù)據(jù)集,特別是在處理涉及多個(gè)Excel工作簿和工作表的場(chǎng)景時(shí)。

在數(shù)據(jù)處理與分析中,經(jīng)常需要比較來(lái)自不同來(lái)源的數(shù)據(jù)集,特別是在處理涉及多個(gè)Excel工作簿和工作表的場(chǎng)景時(shí)。Python的Pandas庫(kù)提供了強(qiáng)大的工具,可以幫助我們高效地完成這一任務(wù)。下面,我們將一步步引導(dǎo)你如何使用Python對(duì)比兩個(gè)Excel文件中多個(gè)Sheet的數(shù)據(jù)。

第一步:安裝必要的庫(kù)

確保你的Python環(huán)境中已安裝pandas和openpyxl。如果沒(méi)有安裝,可以通過(guò)以下命令安裝:

pip install pandas openpyxl

第二步:讀取Excel文件中的多個(gè)Sheet

使用pandas.ExcelFile或pandas.read_excel直接讀取多個(gè)Sheet的數(shù)據(jù)。

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

第三步:對(duì)比數(shù)據(jù)

對(duì)比兩個(gè)Excel文件中相同名稱的Sheet。我們可以逐個(gè)Sheet進(jìn)行對(duì)比,尋找不一致的數(shù)據(jù)行。


# 創(chuàng)建一個(gè)空的字典來(lái)存儲(chǔ)對(duì)比結(jié)果
comparison_results = {}
for sheet_name in sheets1.keys():
    if sheet_name in sheets2:
        # 如果兩個(gè)文件都有相同的Sheet,則進(jìn)行對(duì)比
        df1 = sheets1[sheet_name]
        df2 = sheets2[sheet_name]
        # 比較兩個(gè)DataFrame
        comparison = df1.merge(df2, how='outer', indicator=True)
        comparison_results[sheet_name] = comparison[comparison['_merge'] != 'both']

第四步:分析差異

上述對(duì)比會(huì)返回一個(gè)新DataFrame,其中包含標(biāo)記為left_only或right_only的行,表示只在左側(cè)或右側(cè)數(shù)據(jù)集中存在。此外,還可以通過(guò)left和right后綴訪問(wèn)原始數(shù)據(jù)列。


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

第五步:保存對(duì)比結(jié)果

將對(duì)比結(jié)果保存到新的Excel文件中,便于后續(xù)分析或報(bào)告。


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)

完整代碼示例

下面是將上述步驟整合在一起的完整代碼示例:


import pandas as pd
# 讀取Excel文件
xlsx1 = pd.ExcelFile('file1.xlsx')
xlsx2 = pd.ExcelFile('file2.xlsx')
# 讀取所有Sheet
sheets1 = {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}
# 創(chuàng)建一個(gè)空的字典來(lái)存儲(chǔ)對(duì)比結(jié)果
comparison_results = {}
# 對(duì)比數(shù)據(jù)
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']
# 保存對(duì)比結(jié)果
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)

通過(guò)上述步驟,你可以有效地對(duì)比兩個(gè)Excel文件中多個(gè)Sheet的數(shù)據(jù),找出差異并保存結(jié)果。這種方法特別適用于財(cái)務(wù)審計(jì)、數(shù)據(jù)清洗或任何需要跨數(shù)據(jù)集一致性檢查的場(chǎng)景。

希望這篇指南能夠幫助你在Python中處理復(fù)雜的Excel數(shù)據(jù)對(duì)比任務(wù)。

責(zé)任編輯:華軒 來(lái)源: 測(cè)試開(kāi)發(fā)學(xué)習(xí)交流
相關(guān)推薦

2021-02-27 09:30:16

PythonExcelSheet

2021-01-14 10:24:55

壓縮集合方式

2021-03-10 09:38:44

JeecgBoot 單表數(shù)據(jù)sheet實(shí)例

2022-06-17 09:46:51

Chrome 102Chrome瀏覽器

2016-10-25 13:58:36

數(shù)據(jù)圖表化大數(shù)據(jù)

2011-09-20 15:19:15

Python

2020-10-25 08:47:36

Python有序字典

2020-04-17 10:13:51

Python開(kāi)發(fā)工具

2020-11-13 07:16:09

線程互斥鎖死循環(huán)

2019-08-28 10:00:34

Python測(cè)試工具命令

2021-04-06 11:44:44

數(shù)據(jù)平臺(tái)數(shù)據(jù)科學(xué)數(shù)據(jù)倉(cāng)庫(kù)

2015-11-12 10:32:06

數(shù)據(jù)中心數(shù)據(jù)中心優(yōu)化數(shù)據(jù)中心整合

2010-04-06 18:04:09

Oracle數(shù)據(jù)庫(kù)

2010-09-10 15:26:05

SOAP封裝

2009-07-16 10:39:00

SwingUtilit

2022-03-07 13:58:30

JavaScript原始數(shù)據(jù)前端

2011-04-15 10:21:07

Oracle數(shù)據(jù)庫(kù)運(yùn)算

2010-03-18 14:22:46

Python數(shù)據(jù)庫(kù)連接

2011-06-29 09:16:40

Python

2022-07-05 15:15:11

Python日期命令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 麻豆国产一区二区三区四区 | 免费观看一级毛片视频 | 一区二区三区国产好 | 久久久久黄 | 日一区二区 | 一区二区中文 | 日韩欧美一区二区三区免费观看 | a级片网站| 日韩精品区 | 亚洲综合大片69999 | 午夜影院在线免费观看视频 | 中文字幕一区在线观看视频 | 亚洲国产精久久久久久久 | 欧美高清视频一区 | 欧美精品一区二区三区四区 在线 | 国产精品久久久久久久7电影 | 亚洲精品国产电影 | 国产成人亚洲精品 | 韩日一区 | 久久99国产精一区二区三区 | 91视频免费在观看 | 欧美性久久久 | 狠狠av| 在线成人www免费观看视频 | 国产视频久久 | 91亚洲免费 | 久久精品在线 | 国产一区二区三区高清 | 黄色一级片aaa| 日韩在线| 羞羞在线观看视频 | 欧美aaaaa| 污视频免费在线观看 | 亚洲欧美另类在线 | 久草网址 | 亚洲综合大片69999 | re久久| 日韩欧美在线免费观看 | 亚洲系列第一页 | 欧美一二三区 | 久久久久国产精品一区 |