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

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

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

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

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

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

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

1.1 安裝Python與必要的第三方庫

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

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

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

pip install pandas openpyxl

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

為了方便演示,請在你的電腦桌面上新建一個名為 data.xlsx 的Excel文件,并在其中創(chuàng)建兩列數(shù)據(jù),表頭分別為 列A列B

列A列B
蘋果蘋果
香蕉橘子
葡萄葡萄
芒果芒果
西瓜菠蘿

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

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

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

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

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

import pandas as pd

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

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

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

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

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

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

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

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

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

# 使用 isin() 函數(shù)判斷列A的數(shù)據(jù)是否在列B中
# ~ 符號表示“取反”(即不存在于列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é)果保存下來,而不是僅僅打印在屏幕上。

# 將包含對比結(jié)果的 DataFrame 保存為新的 Excel 文件
# index=False 表示不保存行索引(即最左側(cè)的 0, 1, 2, 3...)
df.to_excel('result.xlsx', index=False)
print("\n對比完成!結(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ù)(去除不可見的空格,防止比對出錯)
    df['列A'] = df['列A'].astype(str).str.strip()
    df['列B'] = df['列B'].astype(str).str.strip()
    
    # 3. 同行比對
    df['同行是否相同'] = df['列A'] == df['列B']
    df['同行是否相同'] = df['同行是否相同'].map({True: '相同', False: '不同'})
    
    # 4. 交叉比對
    df['是否在列B中存在'] = df['列A'].isin(df['列B']).map({True: '存在', False: '不存在'})
    
    # 5. 導(dǎo)出結(jié)果
    df.to_excel('result.xlsx', index=False)
    print("對比完成!請查看當(dāng)前目錄下的 result.xlsx 文件。")

if __name__ == "__main__":
    compare_excel_columns()

3. 常見踩坑與注意事項 (Common Pitfalls)

對于新手來說,即使代碼完全正確,也可能因為數(shù)據(jù)本身的問題導(dǎo)致對比結(jié)果不符合預(yù)期。以下是三個最常見的“坑”:

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

    Python爬蟲爬取屬于自己的地鐵線路圖

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

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

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

    宜良县| 阿勒泰市| 东港市| 竹北市| 鹤壁市| 泾川县| 安图县| 岚皋县| 三江| 松潘县| 商都县| 休宁县| 大英县| 石柱| 开阳县| 德惠市| 大方县| 永安市| 隆昌县| 台南市| 左贡县| 福州市| 东至县| 尖扎县| 洪湖市| 岫岩| 集安市| 永靖县| 神农架林区| 大渡口区| 庆云县| 巴东县| 财经| 靖宇县| 永平县| 临武县| 临汾市| 霍州市| 宜宾县| 瓦房店市| 大宁县|