今天笔者在整理一份数据时,有这样一个需求,已知有多个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
标签:UniqueKey,补全,表格,Excel,cols,ExcelSheet1,key From: https://www.cnblogs.com/5201351/p/17417330.html