最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Python實(shí)現(xiàn)去重聚合Excel數(shù)據(jù)并對比兩份數(shù)據(jù)的差異

 更新時(shí)間:2023年11月09日 07:31:43   作者:qwerrt9  
在數(shù)據(jù)處理過程中,常常需要將多個(gè)數(shù)據(jù)表進(jìn)行合并,并進(jìn)行比對,以便找出數(shù)據(jù)的差異和共同之處,本文將介紹如何使用 Pandas 庫對兩個(gè) Excel 數(shù)據(jù)表進(jìn)行合并與比對,需要的可以參考下

問題背景

在數(shù)據(jù)處理過程中,常常需要將多個(gè)數(shù)據(jù)表進(jìn)行合并,并進(jìn)行比對,以便找出數(shù)據(jù)的差異和共同之處。本文將介紹如何使用 Pandas 庫對兩個(gè) Excel 數(shù)據(jù)表進(jìn)行合并與比對,并將結(jié)果輸出到新的 Excel 文件中。

讀取數(shù)據(jù)表

首先,我們使用 Pandas 庫中的 read_excel 函數(shù)來讀取兩個(gè) Excel 文件中的數(shù)據(jù),分別存儲(chǔ)到 left_df 和 right_df 變量中。

import pandas as pd

left_df = pd.read_excel('C:\\Users\\Admin\\Desktop\\數(shù)據(jù)核對\\數(shù)據(jù)1.xlsx')
right_df = pd.read_excel('C:\\Users\\Admin\\Desktop\\數(shù)據(jù)核對\\數(shù)據(jù)2.xlsx')

數(shù)據(jù)表分組求和

接下來,我們對 left_df 和 right_df 分別按照 '店鋪名稱' 和 '訂單號' 進(jìn)行分組,并對其他列進(jìn)行求和操作。

left_df = left_df.groupby(['店鋪名稱', '訂單號'], as_index=False).sum()
right_df = right_df.groupby(['店鋪名稱', '訂單號'], as_index=False).sum()

合并數(shù)據(jù)表

然后,我們使用 merge 函數(shù)將經(jīng)過分組求和后的兩個(gè) DataFrame 進(jìn)行合并,同時(shí)啟用標(biāo)記列以標(biāo)識(shí)每行數(shù)據(jù)的來源。

merged_df = pd.merge(left_df, right_df, how='outer', on=['訂單號', '店鋪名稱'], indicator=True)

添加標(biāo)記結(jié)果列

根據(jù)合并的結(jié)果,我們添加一個(gè)新列 'merge_result',用于標(biāo)記每條記錄屬于左側(cè)有的數(shù)據(jù)、都有的數(shù)據(jù)還是右側(cè)有的數(shù)據(jù)。

conditions = [
    (merged_df['_merge'] == 'left_only'), # 左側(cè)有的數(shù)據(jù)
    (merged_df['_merge'] == 'both'), # 左右兩邊都有的數(shù)據(jù)
    (merged_df['_merge'] == 'right_only') # 右側(cè)有的數(shù)據(jù)
]
choices = ['Left only', 'Both', 'Right only']

merged_df['merge_result'] = np.select(conditions, choices)

保存結(jié)果到 Excel 文件

最后,我們將合并后的結(jié)果寫入到新的 Excel 文件中,以便進(jìn)一步分析和分享。

merged_df.to_excel('merged.xlsx', index=False)

總結(jié)

通過以上步驟,我們成功地使用 Pandas 完成了兩個(gè)數(shù)據(jù)表的合并與比對,并將結(jié)果保存到了新的 Excel 文件中。這個(gè)過程為我們展示了如何利用 Pandas 庫進(jìn)行數(shù)據(jù)處理和分析,為日常工作中的數(shù)據(jù)清洗和整合提供了有力的支持。

完整代碼

import pandas as pd
import numpy as np

# 讀取兩個(gè) Excel 文件
left_df = pd.read_excel('C:\\Users\\Admin\\Desktop\\數(shù)據(jù)核對\\數(shù)據(jù)1.xlsx')
right_df = pd.read_excel('C:\\Users\\Admin\\Desktop\\數(shù)據(jù)核對\\數(shù)據(jù)2.xlsx')

# 對 left_df DataFrame 進(jìn)行分組求和
left_df = left_df.groupby(['店鋪名稱', '訂單號'], as_index=False).sum()

# 對 right_df DataFrame 進(jìn)行分組求和
right_df = right_df.groupby(['店鋪名稱', '訂單號'], as_index=False).sum()

# 合并兩個(gè)數(shù)據(jù)表,并啟用標(biāo)記列
merged_df = pd.merge(left_df, right_df, how='outer', on=['訂單號', '店鋪名稱'], indicator=True)
# 使用 merge 函數(shù)將左右兩個(gè) DataFrame 進(jìn)行合并
# how='outer' 表示執(zhí)行外連接操作,包括左邊有的、都有的和右邊有的數(shù)據(jù)
# on=['訂單號', '店鋪名稱'] 表示合并所依據(jù)的關(guān)鍵字列名是 '訂單號' 和 '店鋪名稱'
# indicator=True 表示啟用一個(gè)標(biāo)記列 '_merge' 來標(biāo)記每個(gè)行的來源

# 根據(jù)標(biāo)記列的值,添加一個(gè)標(biāo)記結(jié)果列
conditions = [
(merged_df['_merge'] == 'left_only'), # 左側(cè)有的數(shù)據(jù)
(merged_df['_merge'] == 'both'), # 左右兩邊都有的數(shù)據(jù)
(merged_df['_merge'] == 'right_only') # 右側(cè)有的數(shù)據(jù)
]
choices = ['Left only', 'Both', 'Right only']
# 對應(yīng)上述條件的選擇,分別為左側(cè)有的數(shù)據(jù)、都有的數(shù)據(jù)、右側(cè)有的數(shù)據(jù)
merged_df['merge_result'] = np.select(conditions, choices)
# 使用 np.select 函數(shù)根據(jù)條件和選擇,在 DataFrame 中添加一個(gè)新列 'merge_result',標(biāo)記為左側(cè)有的數(shù)據(jù)、都有的數(shù)據(jù)或右側(cè)有的數(shù)據(jù)

# 將結(jié)果寫入到 Excel 文件中
merged_df.to_excel('merged.xlsx', index=False)
# 將合并后的結(jié)果寫入到 Excel 文件 'merged.xlsx' 中,不包含索引列

以上就是利用Python實(shí)現(xiàn)去重聚合Excel數(shù)據(jù)并對比兩份數(shù)據(jù)的差異的詳細(xì)內(nèi)容,更多關(guān)于Python對比Excel數(shù)據(jù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用Python開發(fā)在線編輯器

    使用Python開發(fā)在線編輯器

    這篇文章主要為大家詳細(xì)介紹了如何使用Python開發(fā)一個(gè)在線編輯器,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以了解一下
    2025-02-02
  • Python進(jìn)程間通信Queue實(shí)例解析

    Python進(jìn)程間通信Queue實(shí)例解析

    這篇文章主要介紹了Python進(jìn)程間通信Queue實(shí)例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Python連接Kingbase的實(shí)現(xiàn)示例

    Python連接Kingbase的實(shí)現(xiàn)示例

    Kingbase是一種開源的數(shù)據(jù)庫管理系統(tǒng),與Oracle數(shù)據(jù)庫的語法和功能非常相似,本文主要介紹了Python連接Kingbase的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-12-12
  • python求前n個(gè)階乘的和實(shí)例

    python求前n個(gè)階乘的和實(shí)例

    這篇文章主要介紹了python求前n個(gè)階乘的和實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Pandas 對Dataframe結(jié)構(gòu)排序的實(shí)現(xiàn)方法

    Pandas 對Dataframe結(jié)構(gòu)排序的實(shí)現(xiàn)方法

    下面小編就為大家分享一篇Pandas 對Dataframe結(jié)構(gòu)排序的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Django的性能優(yōu)化實(shí)現(xiàn)解析

    Django的性能優(yōu)化實(shí)現(xiàn)解析

    這篇文章主要介紹了Django的性能優(yōu)化實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python?Rich增加終端顯示視覺效果

    Python?Rich增加終端顯示視覺效果

    Python開發(fā)中,命令行界面(CLI)經(jīng)常被用于交互和數(shù)據(jù)展示,雖然命令行界面通常被視為簡單、枯燥的文本顯示區(qū)域,通過Python的Rich庫,為命令行界面帶來更多生機(jī)和視覺吸引力,本文帶大家探索Rich功能強(qiáng)大的Python庫,增強(qiáng)終端文本渲染,使輸出更具有吸引力和可讀性
    2024-01-01
  • python3 下載網(wǎng)絡(luò)圖片代碼實(shí)例

    python3 下載網(wǎng)絡(luò)圖片代碼實(shí)例

    這篇文章主要介紹了python3 下載網(wǎng)絡(luò)圖片代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python中實(shí)現(xiàn)迭代器(iterator)的方法示例

    python中實(shí)現(xiàn)迭代器(iterator)的方法示例

    我們經(jīng)常需要遍歷一個(gè)對象中的元素,在Python中這種功能是通過迭代器來實(shí)現(xiàn)的。下面這篇文章主要給大家介紹了python中實(shí)現(xiàn)迭代器(iterator)的方法示例,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • Python錯(cuò)誤的處理方法

    Python錯(cuò)誤的處理方法

    這篇文章主要介紹了Python錯(cuò)誤的處理方法,文中代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06

最新評論

东山县| 平阴县| 高邑县| 夏邑县| 东海县| 甘孜县| 西畴县| 仲巴县| 呼伦贝尔市| 长垣县| 景谷| 新河县| 家居| 宝山区| 当阳市| 正安县| 岳阳市| 三江| 肃宁县| 镇远县| 霍城县| 五寨县| 临城县| 年辖:市辖区| 台东市| 宝坻区| 彰化县| 白银市| 手机| 贵港市| 张家界市| 江津市| 冀州市| 汝州市| 龙江县| 中山市| 多伦县| 兴国县| 清河县| 民权县| 城口县|