在日常的数据分析和办公场景中,我们经常会遇到需要对比两个 Excel 文件内容的情况。可能是核对不同版本数据的修改,也可能是比对两个数据源的差异。用 Python 处理这类任务,能快速且精准地找出差异,下面就分享具体实现方法和代码示例。
处理 Excel 文件,我们选用pandas
库,它功能强大,处理数据表格十分便捷。首先得安装pandas
库,在命令行输入pip install pandas
就能完成安装。安装好后,来看具体代码:
import pandas as pd
# 读取两个Excel文件
excel1_path = "file1.xlsx"
excel2_path = "file2.xlsx"
df1 = pd.read_excel(excel1_path)
df2 = pd.read_excel(excel2_path)
# 对比两个DataFrame
if df1.equals(df2):
print("两个Excel文件内容完全相同")
else:
diff = df1 != df2
for col in df1.columns:
for index in range(len(df1)):
if diff.loc[index, col]:
print(f"文件差异:在第{index + 1}行,{col}列,file1的值是{df1.loc[index, col]},file2的值是{df2.loc[index, col]}")
上述代码中,先用pd.read_excel
分别读取两个 Excel 文件,将内容存入DataFrame
数据结构。接着,通过equals
方法判断两个DataFrame
是否完全相同,如果相同直接输出提示;若不同,则通过布尔索引找出存在差异的位置,循环遍历每一列和每一行,一旦发现对应位置的值不相等,就输出具体差异信息,包括所在行、列以及两个文件对应位置的值。
不过,实际应用中可能会遇到更复杂的情况。比如,两个 Excel 文件的列顺序不一致,这时可以在对比前先统一列的顺序,使用df1 = df1[df2.columns]
就能调整df1
的列顺序和df2
一致。又或者,文件中存在缺失值,可先使用df1.fillna(0, inplace=True)
和df2.fillna(0, inplace=True)
将缺失值填充为 0,再进行对比。
通过 Python 和pandas
库对比 Excel 文件,不仅能节省大量手动核对的时间,还能避免人工比对容易出现的疏漏。基于这些基础代码,我们还能继续拓展功能,比如将差异结果保存到新的 Excel 文件中,方便后续查看和处理。如果你在对比 Excel 文件时遇到其他特殊需求,也可以在这个代码基础上灵活调整。