python 學習記錄八:取表格種編號重複的最大、最小值

python 學習記錄八:取表格種編號重複的最大、最小值

原始素材

import openpyxlfrom openpyxl import Workbookfrom openpyxl import load_workbookimport oswbb=Workbook()wf = wbb。activewb = load_workbook(‘取最大最小值。xlsx’)ws = wb[‘Sheet1’]bianhlb=[]shuzlb=[]context={}for row in range(2, ws。max_row + 1): bianh = ws[“A” + str(row)]。value shuz = ws[“B” + str(row)]。value bianhlb。append(bianh) shuzlb。append(shuz)#print(bianhlb,shuzlb)for i in range(len(bianhlb)): context[bianhlb[i]]=shuzlb[i] keys=[]#設定for key in context。keys(): context[key]=[] #清空鍵值 賦值為空列表 keys。append(key)#print(context) print() #換行 for j in range(len(bianhlb)): for key in context。keys(): if bianhlb[j]== key: context[bianhlb[j]]。append(shuzlb[j])#print(context)contextff=context。copy()for key in contextff。keys(): contextffmax=min(contextff[key]) #改變鍵值,一個個改就行 contextff[key]=contextffmaxprint(‘最小值為:’,contextff)newlist1=list(sorted(contextff。items(),key=lambda item:item[0] ))print(‘按值排序’,newlist1)for key in context。keys(): contextmax=max(context[key]) #改變鍵值,一個個改就行 context[key]=contextmaxprint(‘最大值為:’,context)newlist2=list(sorted(context。items(),key=lambda item:item[0] ))print(‘按鍵排序’,newlist2)biaotou=[‘編號1’,‘最小數值’,‘編號2’,‘最大數值’]wf。append(biaotou)for row in range(2,len(context)+2): for i in range(1,2): wf[“A” + str(row)]。value=newlist1[row-2][i-1] wf[“B” + str(row)]。value=newlist1[row-2][i] wf[“C” + str(row)]。value=newlist2[row-2][i-1] wf[“D” + str(row)]。value=newlist2[row-2][i] wbb。save(‘處理後。xlsx’)

python 學習記錄八:取表格種編號重複的最大、最小值

處理後新生成的

總體思路是這樣:

1、首先讀取表格資料到列表bianhlb、shuzlb。把兩個列表的值分別作為鍵、鍵值寫入字典(第一次讀,直接讀取就行,重複的,後面的把前面的替換了,但鍵值是唯一的)。目的就是獲得字典的鍵。

2、把前面生成的字典鍵值清空,做判斷,如果bianhlb種的值在字典中存在了,就把資料追加到鍵值列表中,依次把所有資料寫入鍵值的列表中。

3、對字典遍歷,取每一個鍵的最大值,重新組成字典。

4、對新生成的字典按鍵排序形成列表(最大值contextff、最小值context)

5、將排序後的資料寫入表格

感覺寫的有點麻煩呢,有沒有更簡單的辦法呢?請指教

需要程式的,關注並私信留郵箱,說明要什麼,到時會發給你程式。