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

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

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

左图是小表,右图是大表

软件:Pycharm

1.导入库

我们需要在Python中操作excel表格,所以第一步,需要导入处理excel的库。我们用openpyxl,它是个读写 Excel 2010 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 = 1
endline_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')#原表

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

Python实现表格之间的对照查找相关推荐

  1. C 语言 某人在国外留学,不熟悉当地的天气预报中的华氏温度值,请编程按每隔10°输出0°到300°之间的华氏温度的对照表,方便他对照查找

    某人在国外留学,不熟悉当地的天气预报中的华氏温度值,请编程按每隔10°输出0°到300°之间的华氏温度的对照表,方便他对照查找.已知华氏和摄氏温度的转换公式为:C = 5 / 9 X (F - 32) ...

  2. python中用pandas读写excel表格,根据关键字查找填表(类似vlookpup)

    python中用pandas读写excel表格,根据关键字查找填表(类似vlookpup) excel的vlookup出了N/A值 相关的库 读取和写入excel文件 查找赋值1 遍历表格每行 查找填 ...

  3. python比对excel表数据中的差异_Excel表格中数据比对和查找的几种技巧

    经常被人问到怎么对两份Excel数据进行比对,提问的往往都很笼统:在工作中,有时候会需要对两份内容相近的数据记录清单进行比对,需求不同,比对的的目标和要求也会有所不同.下面Office办公助手(www ...

  4. Python Tutorial中英双语对照文档2

    接 Python Tutorial中英双语对照文档1 CHAPTER SIX MODULES 模块 If you quit from the Python interpreter and enter ...

  5. Python Tutorial中英双语对照文档3

    接 Python Tutorial中英双语对照文档2 CHAPTER NINE CLASSES 类 Classes provide a means of bundling data and funct ...

  6. python生成表格并显示在浏览器_Pyodide:在浏览器端实现Python全栈科学计算

    现在越来越多的软件都Web化,浏览器化.虽然科学计算是一计算密集型的方向,对性能要求和实时性较高.但是数据计算方面也一直在做着这样的探索和发展. Jypyer notbook项目让科学计算真正实现了W ...

  7. python写表格_python写入表格

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! import xlwt #导入xlwt 库 book =xlwt.workboo ...

  8. Python与C之间的相互调用

    Python与C之间的相互调用(Python C API及Python ctypes库) 分类: [Python]2010-01-24 17:58 32468人阅读 评论(11) 收藏 举报 pyth ...

  9. Python与C之间的相互调用(Python C API及Python ctypes库)

    2010-01-24 17:58 14237人阅读 评论(11) 收藏 举报 目录(?)[-] Python C API 准备工作: C中内嵌Python 获取返回值 利用C扩展Python Pyth ...

最新文章

  1. 计算机视觉一些项目实战技术(续)
  2. 【Java集合源码剖析】TreeMap源码剖析
  3. Python入门100题 | 第054题
  4. python编写一个程序、实现文件的复制_写个python 脚本实现文件的递归拷贝
  5. 常见食物营养成分表图_营养成分表,你会看么?
  6. 一起谈.NET技术,asp.net控件开发基础(13)
  7. Java---集合类框架图
  8. LintCode 137. 克隆图
  9. 开涛传–记京东“首席”架构师张开涛
  10. DC-DC电路多种调制方式的介绍及对比
  11. php版微信公众号消息主动推送_PHP版微信公众号消息主动推送
  12. Win10使用PowerShell命令行查看cpu温度
  13. JavaScript自动生成博文目录导航
  14. 学会聆听别人,聆听也是一门艺术。
  15. Flink 1.10 SQL、HiveCatalog与事件时间整合示例
  16. CentOS7下安装jmeter5.3
  17. matlab fgoalattain,MATLAB多目标优化
  18. Spring MVC源码解析——HandlerMapping(处理器映射器)
  19. 传奇从这里诞生--JAVA的N个十
  20. MIGO 收货批次增强

热门文章

  1. 大部分客户的采购习惯及采购周期,做外贸的你一定要知道!
  2. apple watch se os8 初体验 辅助触控
  3. 一、Git下载安装(Windows下)
  4. csv文件用Excel打开乱码如何处理
  5. oracle时间相减得到天_Oracle 时间相减得出毫秒、秒、分、时、天,,【转】
  6. java四舍五入方法的基础学习
  7. 人工智能驱动的智能制造与工业4.0(人工智能大数据公司)
  8. 教程:如何在优麒麟上畅玩沙盒游戏--《我的世界》
  9. HTML Imports
  10. kurento教程_Kurento Room Demo 教程 (发布)