1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python实现表格之间的对照查找

Python实现表格之间的对照查找

时间:2020-07-02 07:03:13

相关推荐

Python实现表格之间的对照查找

Excel表格非常强大,Python可以让我们的重复性表格工作一劳永逸。而且,在人工智能的机器学习模型的建立中,我们需要用Excel帮我们进行数据分析统计,我们需要把Python处理得到的数据写入excel进行数据分析。

前一段时间,我需要查找表格1中的所有的数据是否存在表格2中,所以我就思考能不能用编程实现呢?以后遇到类似的时间,改改数值就可以一键操作了。

比如,下查右图大表的1班的考生是不是都存在左图的小表里面(右图大表里有初一年级所有的班级,左图的小表是1班所有学生)

左图是小表,右图是大表

软件:Pycharm

1.导入库

我们需要在Python中操作excel表格,所以第一步,需要导入处理excel的库。我们用openpyxl,它是个读写 Excel xlsx/xlsm/xltx/xltm 的 Python 库,简单易用,功能广泛,单元格格式/图片/表格/公式/筛选/批注/文件保护等等功能应有尽有,图表功能是其一大亮点。

import openpyxl

2.获取Excel文件

我的表格“原表.xlsx”,这里的路径为绝对路径

book = openpyxl.load_workbook('I:/workspace/对照查找/原表.xlsx')#原表

3.获得Excel文件的所有工作表

names = book.sheetnames

4.同样获得对照表的excel文件和所有的工作表

book_new = openpyxl.load_workbook('I:/workspace/对照查找/小表.xlsx')names_new = book_new.sheetnames

5.找到工作表的第一个工作簿,从0开始算

sheetB = book[names[0]] #sheet1

6.获得第一个工作簿的“C”列所有数据

sheetB_c= sheetB["B"] #学号,指定学号作为唯一索引

因为,我们要根据两个表格的相同索引进行查找,所以同理得到对照表的第一个工作簿的C列所有数据。

sheetA = book_new[names_new[0]]sheetA_c= sheetA["A"] #学号,查找索引

7.设置初始值

"""B表(原表),index2 A表(新表),index1 """indexB = 1#循环索引值indexA = 1endline_B = 1423 #结束行endline_A = 56

8.查找过程

使用暴力枚举法:双重循环,外层循环控制大表,内存循环控制小表。从大表indexB的第1行开始循环,查找小表indexA的第1行~第56行,如果遇到相同数据,把此单元格填充颜色,跳出循环;大表循环进入第二行,重复次过程。这种方法虽然运算量大,但是写起来比较简单。

for c_name in sheetB_c: #原表,要被替换的表if str(c_name.value) is None or indexB > endline_B: #如果没有数据,退出breakindexA = 1for c_name1 in sheetA_c:value1 = str(c_name1.value)if value1 is None or indexA > endline_A: # 如果没有数据,退出breakif value1 == str(c_name.value):sheetB["B" + str(indexB)].value = sheetA["A"+ str(indexA)].valuesheetB["C" + str(indexB)].fill = fille1 #填充颜色breakindexA+=1indexB += 1

9.全部查找完成,再把修改的颜色值保存到大表里面,修改数据

book.save('I:/workspace/替换/原表.xlsx')#原表

大家如果有什么好的思路,敬请指教~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。