import pandas as pd# 讀取兩個Excel文件
df1 = pd.read_excel('1.xlsx')
df2 = pd.read_excel('2.xlsx')# 檢查兩個DataFrame的列是否相同
if list(df1.columns) != list(df2.columns):print("兩個Excel文件的列不一致。")print("文件1的列:", df1.columns)print("文件2的列:", df2.columns)
else:# 合并兩個DataFrame,并標識差異df_diff = pd.merge(df1, df2, how='outer', on=df1.columns.tolist(), indicator=True)df_diff = df_diff[df_diff['_merge'] != 'both']# 刪除_merge列,因為它只是用來標識差異的df_diff = df_diff.drop(columns=['_merge'])# 打印差異if not df_diff.empty:print("兩個Excel文件的數據存在差異:")print(df_diff)else:print("兩個Excel文件的數據完全相同")
? ? ? ?要對比兩張Excel數據表并找出差異,可以使用Python的pandas
庫。以上是一個示例代碼,它會加載兩個Excel文件,比較它們的數據,并打印出差異。
? ? ? ?在這個代碼中,我們首先檢查兩個DataFrame的列是否完全相同。如果不相同,我們會輸出每個文件的列名稱。如果列相同,我們使用pd.merge
函數進行外連接(how='outer'
),這樣就可以找出只在其中一個DataFrame中存在的行。indicator=True
參數會添加一個名為_merge
的列,用于指示每行數據的來源。然后我們篩選出_merge
列不等于both
的行,這些行就是差異部分。
? ? ? ?請注意,這個代碼假設兩個Excel文件的結構相同(即列名和列的順序相同)。如果文件的結構不同,或者你想要比較的列不同,你可能需要先對DataFrame進行一些預處理來調整它們的結構。
? ? ? ?確保在運行此代碼之前已經安裝了pandas
和openpyxl
庫。如果沒有安裝,可以使用以下命令安裝:
pip install pandas openpyxl
成果: