背景:我在2个系统下载出了两个Excel,现在通过对下载的2个Excel数据,并选出差异数据 从新写入一个新的Excel中
differences_url =r'C:\Users\LENOVO\Downloads\differences.xlsx'; //要生成的差异Excel的位置及名称
df1_url =r'C:\Users\LENOVO\Downloads\excel1.xlsx'; //要对比的源Excel1
df2_url =r'C:\Users\LENOVO\Downloads\excel2.xlsx';//要对比的源Excel2
# 步骤1: 读取两个Excel文件
df1 = pd.read_excel(df1_url)
df2 = pd.read_excel(df2_url)
# 打印读取的数据
print("File 1 Data:")
print(df1)
print("\nFile 2 Data:")
print(df2)
# 假设要比较的列是 '入库通知单号' 和 '来源平台'
comparison_columns = ['入库通知单号', '来源平台']
# 合并两个 DataFrame,在相同 入库通知单号 上进行比较
df_merged = df1.merge(df2, on='入库通知单号', suffixes=('_file1', '_file2'), how='outer')
print("========>")
#df_merged.to_excel(r'C:\Users\LENOVO\Downloads\df_merged.xlsx', index=False)
# 通过"入库通知单号"字段关联后,比对两个Excel中的"来源平台"字段找到不同的数据
differences = df_merged[(df_merged['来源平台_file1'] != df_merged['来源平台_file2']) |
(df_merged['来源平台_file1'].isnull() | df_merged['来源平台_file2'].isnull())]
# 打印比较结果
print("Differences between the two files:")
print(differences)
# 检查文件是否存在
if os.path.exists(differences_url):
# 如果文件存在,则删除它
os.remove(differences_url)
print(f"文件 {differences_url} 已存在,已被删除。")
# 将比较结果输出到 Excel 文件
differences.to_excel(r'C:\Users\LENOVO\Downloads\differences.xlsx', index=False)
测试:
两个源Excel
excel1和excel2的都是一样的数据
对比后产生差异Excel
差异中差异数据是空的