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

Python代碼輕松實(shí)現(xiàn)Excel兩列數(shù)據(jù)對(duì)比

 更新時(shí)間:2026年03月19日 08:14:02   作者:小莊-Python辦公  
這篇文章主要為大家詳細(xì)介紹了如何使用Python的pandas庫(kù)實(shí)現(xiàn)Excel兩列數(shù)據(jù)的自動(dòng)化對(duì)比,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

在日常的辦公與數(shù)據(jù)分析工作中,我們經(jīng)常會(huì)遇到這樣的需求:核對(duì)Excel表格中的兩列數(shù)據(jù),找出它們的差異或相同點(diǎn)。雖然Excel自帶的 VLOOKUP 函數(shù)或條件格式也能解決部分問(wèn)題,但當(dāng)數(shù)據(jù)量龐大、對(duì)比邏輯復(fù)雜,或者你需要進(jìn)行自動(dòng)化處理時(shí),Python 無(wú)疑是更高效、更強(qiáng)大的選擇。

本文將以完全零基礎(chǔ)的視角,帶你一步步使用Python完成Excel中兩列數(shù)據(jù)的對(duì)比。我們將使用Python中最強(qiáng)大的數(shù)據(jù)處理庫(kù)——pandas

1. 準(zhǔn)備工作 (Prerequisites)

在開(kāi)始編寫(xiě)代碼之前,我們需要準(zhǔn)備好開(kāi)發(fā)環(huán)境和測(cè)試數(shù)據(jù)。

1.1 安裝Python與必要的第三方庫(kù)

確保你的電腦上已經(jīng)安裝了Python。接下來(lái),我們需要安裝兩個(gè)關(guān)鍵的庫(kù):

  • pandas:用于數(shù)據(jù)處理和分析的核心庫(kù)。
  • openpyxl:用于讀取和寫(xiě)入 .xlsx 格式的Excel文件。

打開(kāi)你的命令行工具(Windows用戶(hù)打開(kāi)CMD或PowerShell,Mac用戶(hù)打開(kāi)終端 Terminal),輸入以下命令并回車(chē):

pip install pandas openpyxl

1.2 準(zhǔn)備測(cè)試數(shù)據(jù)

為了方便演示,請(qǐng)?jiān)谀愕碾娔X桌面上新建一個(gè)名為 data.xlsx 的Excel文件,并在其中創(chuàng)建兩列數(shù)據(jù),表頭分別為 列A列B

列A列B
蘋(píng)果蘋(píng)果
香蕉橘子
葡萄葡萄
芒果芒果
西瓜菠蘿

將該文件保存在與你即將編寫(xiě)的Python腳本相同的文件夾目錄下。

2. 分步操作指南 (Step-by-Step Guide)

我們將通過(guò)四個(gè)簡(jiǎn)單的步驟,完成數(shù)據(jù)的讀取、對(duì)比和結(jié)果導(dǎo)出。

步驟 1:導(dǎo)入庫(kù)并讀取Excel文件

首先,我們需要讓Python“看到”我們的Excel數(shù)據(jù)。

import pandas as pd

# 讀取Excel文件
# 注意:確保 data.xlsx 與你的Python代碼在同一個(gè)文件夾
df = pd.read_excel('data.xlsx')

# 打印數(shù)據(jù),檢查是否讀取成功
print("原始數(shù)據(jù):")
print(df)

步驟 2:基礎(chǔ)對(duì)比(判斷同行數(shù)據(jù)是否一致)

最常見(jiàn)的需求是:檢查同一行中,列A列B 的數(shù)據(jù)是否完全一樣。我們可以在表格后面新增一列 對(duì)比結(jié)果 來(lái)顯示。

# 判斷列A和列B是否相等,結(jié)果會(huì)生成 True 或 False
df['對(duì)比結(jié)果'] = df['列A'] == df['列B']

# 為了讓結(jié)果更直觀,我們可以將 True/False 替換為中文描述
df['對(duì)比結(jié)果'] = df['對(duì)比結(jié)果'].map({True: '相同', False: '不同'})

print("\n同行對(duì)比后的數(shù)據(jù):")
print(df)

步驟 3:交叉對(duì)比(找出一列中有,另一列中沒(méi)有的數(shù)據(jù))

有時(shí)候,數(shù)據(jù)不是按行對(duì)應(yīng)的。我們想知道:列A中存在,但列B中不存在的數(shù)據(jù)有哪些?

# 使用 isin() 函數(shù)判斷列A的數(shù)據(jù)是否在列B中
# ~ 符號(hào)表示“取反”(即不存在于列B中)
diff_A_not_in_B = df[~df['列A'].isin(df['列B'])]

print("\n在列A中但不在列B中的數(shù)據(jù):")
print(diff_A_not_in_B['列A'].tolist())

步驟 4:將結(jié)果導(dǎo)出為新的Excel文件

處理完數(shù)據(jù)后,我們需要將結(jié)果保存下來(lái),而不是僅僅打印在屏幕上。

# 將包含對(duì)比結(jié)果的 DataFrame 保存為新的 Excel 文件
# index=False 表示不保存行索引(即最左側(cè)的 0, 1, 2, 3...)
df.to_excel('result.xlsx', index=False)
print("\n對(duì)比完成!結(jié)果已保存至 result.xlsx")

完整代碼 (Complete Code)

將以上步驟整合,你可以直接復(fù)制以下代碼運(yùn)行:

import pandas as pd

def compare_excel_columns():
    # 1. 讀取數(shù)據(jù)
    print("正在讀取數(shù)據(jù)...")
    df = pd.read_excel('data.xlsx')
    
    # 2. 清理數(shù)據(jù)(去除不可見(jiàn)的空格,防止比對(duì)出錯(cuò))
    df['列A'] = df['列A'].astype(str).str.strip()
    df['列B'] = df['列B'].astype(str).str.strip()
    
    # 3. 同行比對(duì)
    df['同行是否相同'] = df['列A'] == df['列B']
    df['同行是否相同'] = df['同行是否相同'].map({True: '相同', False: '不同'})
    
    # 4. 交叉比對(duì)
    df['是否在列B中存在'] = df['列A'].isin(df['列B']).map({True: '存在', False: '不存在'})
    
    # 5. 導(dǎo)出結(jié)果
    df.to_excel('result.xlsx', index=False)
    print("對(duì)比完成!請(qǐng)查看當(dāng)前目錄下的 result.xlsx 文件。")

if __name__ == "__main__":
    compare_excel_columns()

3. 常見(jiàn)踩坑與注意事項(xiàng) (Common Pitfalls)

對(duì)于新手來(lái)說(shuō),即使代碼完全正確,也可能因?yàn)閿?shù)據(jù)本身的問(wèn)題導(dǎo)致對(duì)比結(jié)果不符合預(yù)期。以下是三個(gè)最常見(jiàn)的“坑”:

1.隱藏的空格 (Leading/Trailing Spaces):在Excel中錄入數(shù)據(jù)時(shí),很容易不小心多敲一個(gè)空格。計(jì)算機(jī)在對(duì)比時(shí),"蘋(píng)果""蘋(píng)果 "(帶空格)會(huì)被認(rèn)為是完全不同的兩個(gè)詞。

解決方案: 在對(duì)比前,使用 .str.strip() 方法去除字符串兩端的空格(如上方完整代碼中的步驟2所示)。

2.大小寫(xiě)敏感 (Case Sensitivity):對(duì)于英文字母,Python默認(rèn)是區(qū)分大小寫(xiě)的(Apple 不等于 apple)。

解決方案: 可以在對(duì)比前將所有字母統(tǒng)一轉(zhuǎn)換為小寫(xiě):df['列A'].str.lower() == df['列B'].str.lower()

3.數(shù)據(jù)類(lèi)型不一致 (Data Type Mismatch):有時(shí)候列A中的 123 是數(shù)字類(lèi)型,而列B中的 123 是文本類(lèi)型。這會(huì)導(dǎo)致對(duì)比結(jié)果為“不同”。

解決方案: 在對(duì)比前,使用 .astype(str) 強(qiáng)制將兩列都轉(zhuǎn)換為字符串格式。

4. 總結(jié)與學(xué)習(xí)資源 (Conclusion & Resources)

通過(guò)本文,你已經(jīng)掌握了如何使用Python和 pandas 庫(kù)來(lái)讀取Excel文件、進(jìn)行同行的精準(zhǔn)對(duì)比、交叉查找差異,并將最終結(jié)果導(dǎo)出。相比于手動(dòng)核對(duì),Python不僅速度極快,還能徹底避免人為眼花的失誤。

當(dāng)你熟悉了這些基礎(chǔ)操作后,你可以嘗試處理?yè)碛袔资f(wàn)行數(shù)據(jù)的表格,你會(huì)發(fā)現(xiàn)Python的運(yùn)行速度依然只需幾秒鐘。

到此這篇關(guān)于Python代碼輕松實(shí)現(xiàn)Excel兩列數(shù)據(jù)對(duì)比的文章就介紹到這了,更多相關(guān)Python Excel數(shù)據(jù)對(duì)比內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python pcm音頻添加頭轉(zhuǎn)成Wav格式文件的方法

    python pcm音頻添加頭轉(zhuǎn)成Wav格式文件的方法

    今天小編就為大家分享一篇python pcm音頻添加頭轉(zhuǎn)成Wav格式文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python Pydantic數(shù)據(jù)驗(yàn)證的實(shí)現(xiàn)

    Python Pydantic數(shù)據(jù)驗(yàn)證的實(shí)現(xiàn)

    本文主要介紹了Python Pydantic數(shù)據(jù)驗(yàn)證的實(shí)現(xiàn)
    2025-04-04
  • Python面向?qū)ο缶幊讨?lèi)的概念

    Python面向?qū)ο缶幊讨?lèi)的概念

    這篇文章主要介紹了Python面向?qū)ο缶幊讨?lèi)的概念,Python語(yǔ)言的中所有數(shù)據(jù)類(lèi)型都是對(duì)象、函數(shù)是對(duì)象、模塊是對(duì)象;所有類(lèi)都是繼承最基礎(chǔ)的類(lèi)object,面向?qū)ο缶幊逃纸蠴OP,下文了解更多具體內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • Python中的filter()函數(shù)的3種使用方式詳解

    Python中的filter()函數(shù)的3種使用方式詳解

    這篇文章主要介紹了Python中的filter()函數(shù)的3種使用方式,Python中filter()函數(shù)用于過(guò)濾序列,返回迭代器,支持函數(shù)式編程,可配合lambda或自定義函數(shù),與列表推導(dǎo)式類(lèi)似但更高效,需要的朋友可以參考下
    2025-05-05
  • Python + selenium自動(dòng)化環(huán)境搭建的完整步驟

    Python + selenium自動(dòng)化環(huán)境搭建的完整步驟

    這篇文章主要給大家介紹了關(guān)于Python + selenium自動(dòng)化環(huán)境搭建的相關(guān)資料,文中通過(guò)圖文將實(shí)現(xiàn)的步驟一步步介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧
    2018-05-05
  • python類(lèi)別數(shù)據(jù)數(shù)字化LabelEncoder?VS?OneHotEncoder區(qū)別

    python類(lèi)別數(shù)據(jù)數(shù)字化LabelEncoder?VS?OneHotEncoder區(qū)別

    這篇文章主要為大家介紹了機(jī)器學(xué)習(xí):數(shù)據(jù)預(yù)處理之將類(lèi)別數(shù)據(jù)數(shù)字化的方法LabelEncoder?VS?OneHotEncoder區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 深入理解Python?@dataclass的內(nèi)部原理

    深入理解Python?@dataclass的內(nèi)部原理

    文章介紹了Python中dataclass的實(shí)現(xiàn)原理,通過(guò)自定義裝飾器實(shí)現(xiàn)了__init__和__repr__方法,并解釋了__annotations__屬性和exec函數(shù)在其中的作用,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5 MDI(多文檔窗口)QMidArea詳細(xì)使用方法與實(shí)例

    python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5 MDI(多文檔窗口)QMidArea詳細(xì)使用方法與實(shí)例

    這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5 MDI(多文檔窗口)QMidArea詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下
    2020-03-03
  • Python爬蟲(chóng)爬取屬于自己的地鐵線(xiàn)路圖

    Python爬蟲(chóng)爬取屬于自己的地鐵線(xiàn)路圖

    這篇文章主要介紹了Python爬蟲(chóng)爬取屬于自己的地鐵線(xiàn)路圖,下面文章主要事根據(jù)自己需要對(duì)地鐵路線(xiàn)進(jìn)行爬取的實(shí)現(xiàn)過(guò)程,需要的小伙伴可以參考一下,希望對(duì)你有所幫助
    2021-12-12
  • python實(shí)現(xiàn)密碼驗(yàn)證合格程序的思路詳解

    python實(shí)現(xiàn)密碼驗(yàn)證合格程序的思路詳解

    這篇文章主要介紹了python實(shí)現(xiàn)密碼驗(yàn)證合格程序的思路詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06

最新評(píng)論

寻甸| 山东省| 安国市| 景泰县| 南皮县| 无锡市| 大宁县| 瓮安县| 同德县| 绥江县| 福建省| 教育| 巴楚县| 乐山市| 中山市| 临泉县| 台前县| 信丰县| 塔城市| 宁德市| 曲靖市| 濉溪县| 恩施市| 益阳市| 乳源| 峨眉山市| 南丰县| 神池县| 淮阳县| 措美县| 阿城市| 延寿县| 清原| 白银市| 乌兰县| 宜君县| 咸丰县| 文水县| 凯里市| 开平市| 汶上县|