使用python对两个Excel表进行数据比较,得到差异和相同的数据行。 您所在的位置:网站首页 excel对比两张表数据异同 使用python对两个Excel表进行数据比较,得到差异和相同的数据行。

使用python对两个Excel表进行数据比较,得到差异和相同的数据行。

2024-06-07 17:55| 来源: 网络整理| 查看: 265

问题描述

工作中遇到要对两个Excel表格文件进行数据对比,找出其中不同的行。例如,比较同一用户的信息是否一致,这里的信息可能是不同版本的,但是属性列是一致的,数据内容上可能不同。如下表所示:

Excel 1 姓名性别年龄住址张三男26北京市 Excel 2 姓名性别年龄住址张三男27上海市 解决方法 import pandas as pd def compare_data(data1, sheetname1, data2, sheetname2): # 读取两个表 dt1 = pd.read_excel(data1, sheet_name=sheetname1) dt2 = pd.read_excel(data2, sheet_name=sheetname2) # 确定基准列 dt1_name = dt1['姓名'].values.tolist() dt2_name = dt2['姓名'].values.tolist() count = 0 for i in dt1_name: if i in dt2_name: dt1_row = dt1.loc[dt1['name'] == i] dt2_row = dt2.loc[dt2['name'] == i] # 可以选择不做比较的列 dt1_row_ = dt1_row.loc[:, dt1_row.columns.difference(['性别', '住址'])] dt2_row_ = dt2_row.loc[:, dt2_row.columns.difference(['性别', '住址'])] # 判断两行是否内容一致 if dt1_row_.equals(dt2_row_): pass else: # count计数 count += 1 # 导入要保存的文件名,mode='a'可以控制连续写入csv文件 dt1_row.to_csv(r'test.csv', index=False, mode='a', header=None) dt2_row.to_csv(r'test.csv', index=False, mode='a', header=None) else: print("匹配失败的姓名:", i) # 同理,可以反过来比较一下 for j in dt2_name: if j not in dt1_name: print("匹配失败的姓名:", j) print("##############################") print('测试不同的样本数为:', count)

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有