python对比两个excel表 【超简单】

注:由于我们不是专门做数据处理与分析的,因此懂的也少,所以编写的python程序是简单易懂的,如果存在bug或者可以有更好的方法,欢迎大佬指出!!!

主要思路:
就是将excel表中每条数据变成一个字典,然后添加到列表中,组成一个元素为字典类型的列表(由于数据不可公开,所以做了马赛克)。如下:
excel数据:表1
python对比两个excel表 【超简单】_第1张图片
excel数据:表2
python对比两个excel表 【超简单】_第2张图片
可以看到每个excel表数据很多,都几千条,如果一个个看很费时。

import openpyxl
# 加载第一个Excel
data_raw= openpyxl.load_workbook("微课与教学辅助清单核对.xlsx") # 加载Excel文件
data_raw_sheet1 = data_raw[data_raw.sheetnames[0]] # 获取第一张数据表
data_weike= openpyxl.load_workbook("微课与教学辅助作品审核表.xlsx") # 加载Excel文件
data_weike_sheet1 = data_weike[data_weike.sheetnames[0]]
# data_raw_dict = {}
# data_weike_dict = {}
data_raw_list = []
data_weike_list = []
#微课类作品
for row in range(2,data_weike_sheet1.max_row):
    data_weike_dict = {}
    bianhao = data_weike_sheet1.cell(row=row,column=1).value
    dalei_name = data_weike_sheet1.cell(row=row,column=2).value
    xiao_name= data_weike_sheet1.cell(row=row,column=3).value
    zuo_name = data_weike_sheet1.cell(row=row,column=4).value
    xue_name = data_weike_sheet1.cell(row=row,column=5).value
    shengfen = data_weike_sheet1.cell(row=row,column=6).value
    data_weike_dict['省份'] = shengfen
    data_weike_dict['作品编号'] = bianhao
    data_weike_dict['大类名称'] = dalei_name
    data_weike_dict['小类名称'] = xiao_name
    data_weike_dict['作品名称'] = zuo_name
    data_weike_dict['参赛学校'] = xue_name
    data_weike_list.append(data_weike_dict)
#全部数据
for row in range(2,data_raw_sheet1.max_row):
    if data_raw_sheet1.cell(row=row,column=3).value == '微课与教学辅助':
        data_raw_dict = {}
        shengfen = data_raw_sheet1.cell(row=row,column=1).value
        bianhao = data_raw_sheet1.cell(row=row,column=2).value
        dalei_name= data_raw_sheet1.cell(row=row,column=3).value
        xiao_name = data_raw_sheet1.cell(row=row,column=4).value
        zuo_name = data_raw_sheet1.cell(row=row,column=5).value
        xue_name = data_raw_sheet1.cell(row=row,column=6).value
        data_raw_dict['省份'] = shengfen
        data_raw_dict['作品编号'] = bianhao
        data_raw_dict['大类名称'] = dalei_name
        data_raw_dict['小类名称'] = xiao_name
        data_raw_dict['作品名称'] = zuo_name
        data_raw_dict['参赛学校'] = xue_name
        data_raw_list.append(data_raw_dict)
#数据对比,把不正确的编号记录下来
print(len(data_weike_list))
print(len(data_raw_list))
right=0
wrong_count = 0
wrong_list = []
same = [x for x in data_weike_list if x in data_raw_list] #找两表相同的内容
no_same_in_weike = [x for x in data_weike_list if x not in same] #在weike中找和raw不同的数据
no_same_in_qingdan = [x for x in data_raw_list if x not in same]#在raw中和weike不同的数据
print(len(same))
print(len(no_same_in_qingdan))
print(len(no_same_in_weike))
#微课中不同的
for i in no_same_in_weike:
    print(i)
#清单中不同的
print("微课中出现与清单中不同的作品对比:")
for i in no_same_in_qingdan:
    print(i)

处理之后找出两表中不同的信息:

python对比两个excel表 【超简单】_第3张图片

你可能感兴趣的:(python数据分析案例,python,excel)