博客园  :: 首页  :: 管理

今天笔者在整理一份数据时,有这样一个需求,已知有多个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