黑袜帅主玩奴Gay.2022_波多野结衣av一台道_观看出轨少妇视频在线观看_无码视频网站亚洲精华液国产_精品自在拍精选

基于python實現(xiàn)-根據(jù)Excel表格指定的UniqueKey的順序-到另一個參考表格中查找-補(bǔ)全與自己相關(guān)的數(shù)據(jù)
來源:博客園     時間:2023-05-20 16:27:47

今天筆者在整理一份數(shù)據(jù)時,有這樣一個需求,已知有多個ID是UniqueKey,每一個UniqueKey及與它相關(guān)的數(shù)據(jù)為一行,存放于Excel表格行中

但他們相關(guān)的數(shù)據(jù)可能有誤,而另一個表格Excel-02中的數(shù)據(jù)沒有問題,但是UniqueKey順序與第一個表格不一樣


(相關(guān)資料圖)

現(xiàn)在主要是要修改第一個表格的數(shù)據(jù),當(dāng)然可以使用excel相關(guān)的函數(shù)與公式實現(xiàn),但這里筆者嘗試使用python腳本處理

實現(xiàn)的邏輯與思路如下:

1、先將Excel-02表格中的數(shù)據(jù),重新生成一個字典數(shù)據(jù),因為UniqueKey是唯一的,這里我們可以以它為字段的key

2、使用for遍歷Excel-01表格中的UniqueKey,然后到第一步生成中的字典數(shù)據(jù)中進(jìn)行取相關(guān)的所以值(保險處理,需要考慮UniqueKey在上面的字典中找不到的情況)

3、將第二步生成的數(shù)據(jù)重新寫入到一個新的Excel中,這樣新的Excel中的UniqueKey,就肯定是和Excel-01中的UniqueKey順序一樣,也就可以直接粘貼了

特別說明:如果后面多個字段為空的,那很可能是因為沒有在Excel-02中找到一樣的UniqueKey,這種情況就需要手動處理了

核心的python代碼如下:

import openpyxlimport pandasUniqueKey=["xxx01","xxx02","xxx03"]ExcelWorkBook = openpyxl.load_workbook("Excel-02.xlsx")ExcelSheet1 = ExcelWorkBook[ExcelWorkBook.sheetnames[0]]rows,cols = ExcelSheet1.max_row,ExcelSheet1.max_columnExcelDataDict={}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_dataNewData,ErrorItem=[],[]for key in UniqueKey:    try:        NewData.append(ExcelDataDict[key])    except:        NewData.append([key])        ErrorItem.append(key)

最后將NewData的數(shù)據(jù)寫入到新的Excel中就可以了,這樣形成的表格中的UniqueKey就與我們需要修正的Excel-01順序是一樣的了

尊重別人的勞動成果 轉(zhuǎn)載請務(wù)必注明出處:https://www.cnblogs.com/5201351/p/17417330.html

標(biāo)簽:

廣告

X 關(guān)閉

廣告

X 關(guān)閉