基于python实现-根据Excel表格指定的UniqueKey的顺序-到另一个参考表格中查找-补全与自己相关的数据
Posted on 2023-05-20 15:52 520_1351 阅读(54) 评论(0) 编辑 收藏 举报今天笔者在整理一份数据时,有这样一个需求,已知有多个ID是UniqueKey,每一个UniqueKey及与它相关的数据为一行,存放于Excel表格行中
但他们相关的数据可能有误,而另一个表格Excel-02中的数据没有问题,但是UniqueKey顺序与第一个表格不一样
现在主要是要修改第一个表格的数据,当然可以使用excel相关的函数与公式实现,但这里笔者尝试使用python脚本处理
实现的逻辑与思路如下:
1、先将Excel-02表格中的数据,重新生成一个字典数据,因为UniqueKey是唯一的,这里我们可以以它为字段的key
2、使用for遍历Excel-01表格中的UniqueKey,然后到第一步生成中的字典数据中进行取相关的所以值(保险处理,需要考虑UniqueKey在上面的字典中找不到的情况)
3、将第二步生成的数据重新写入到一个新的Excel中,这样新的Excel中的UniqueKey,就肯定是和Excel-01中的UniqueKey顺序一样,也就可以直接粘贴了
特别说明:如果后面多个字段为空的,那很可能是因为没有在Excel-02中找到一样的UniqueKey,这种情况就需要手动处理了
核心的python代码如下:
import openpyxl import pandas UniqueKey=["xxx01","xxx02","xxx03"] ExcelWorkBook = openpyxl.load_workbook('Excel-02.xlsx') ExcelSheet1 = ExcelWorkBook[ExcelWorkBook.sheetnames[0]] rows,cols = ExcelSheet1.max_row,ExcelSheet1.max_column ExcelDataDict={} for i in range(1,rows+1): A=ExcelSheet1.cell(row=i, column=1).value cols_data=[] for j in range(1,cols+1): cols_data.append(ExcelSheet1.cell(row=i, column=j).value) ExcelDataDict[A]=cols_data NewData,ErrorItem=[],[] for key in UniqueKey: try: NewData.append(ExcelDataDict[key]) except: NewData.append([key]) ErrorItem.append(key)
最后将NewData的数据写入到新的Excel中就可以了,这样形成的表格中的UniqueKey就与我们需要修正的Excel-01顺序是一样的了
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17417330.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!