侧边栏壁纸
  • 累计撰写 26 篇文章
  • 累计收到 0 条评论

用python对两个表格的两列数据对比

2026-5-14 / 0 评论 / 141 阅读
import openpyxl as vb
import csv
import pandas as pd

#读取 需要对比的excel表
#代表表1
workbook_a = vb.load_workbook(r"D://a//表1.xlsx")
#代表表2
workbook_b = vb.load_workbook(r"D://a//表2.xlsx")

#读取需要对比的sheet名
sheet_a = workbook_a['Sheet1']
sheet_b = workbook_b['Sheet1']

#遍历所有的行与列
maxrow_a = sheet_a.max_row
maxcolumn_a = sheet_a.max_column
maxrow_b = sheet_b.max_row
maxcolumn_b = sheet_b.max_column

data_a = {}
data_b = {}
for i in range(1,int(maxrow_a)+1):
    cell_a_1 = sheet_a.cell(i,1)
    cell_a_2 = sheet_a.cell(i,2)
    c_a_1 = str(cell_a_1.value)
    c_a_2 = str(cell_a_2.value)
    data_a[c_a_1] = c_a_2
    #data_a.append(cell_a.value)

for j in range(1,int(maxrow_b)+1):
    cell_b_1 = sheet_b.cell(j,1)
    cell_b_2 = sheet_b.cell(j,2)
    c_b_1 = str(cell_b_1.value)
    c_b_2 = str(cell_b_2.value)
    data_b[c_b_1] = c_b_2

'''
description: 表1中没有表2的这些数据
return {*}
Date: 2023-04-23 16:56:14
'''
data_aaa = []
for keys,value in data_a.items():
    if keys not in data_b.keys():
        print(keys,value)
        data_aaaa = []
        data_aaaa = [keys,value]
        data_aaa.append(data_aaaa)

columns11= ["code","name"]
test_aaa=pd.DataFrame(columns=columns11,data=data_aaa)#数据有三列,列名分别为one,two,three
test_aaa.to_csv('D:/a/表1有表2没有的这些数据.csv',encoding='utf8')

'''
description: 表2没有表1这些数据
return {*}
Date: 2023-04-23 17:00:36
'''
data_bbb = []
for keys,value in data_b.items():
    if keys not in data_a.keys():
        print(keys,value)
        data_bbbb = []
        data_bbbb = [keys,value]
        data_bbb.append(data_bbbb)

test_bbb=pd.DataFrame(columns=columns11,data=data_bbb)#数据有三列,列名分别为one,two,three
test_bbb.to_csv('D:/a/表2有表1没有这些数据.csv',encoding='utf8')


评论一下?

OωO
取消