Python應用實現處理excel資料過程解析
阿新 • • 發佈:2020-06-19
實現功能
excel表格中有4列數,分別為RMF計算得到的 β,γ,勢能面及組態,需要挑選出相同 β 值下勢能面最低時的組態。為了減小資料量,先將 β 值保留兩位小數。
程式碼
import xlrd import xlwt # read xls file readfile = xlrd.open_workbook('./beta-gamma-constrain.xlsx') readsheet = readfile.sheet_by_name('Sheet1') beta = readsheet.col_values(0) gamma = readsheet.col_values(1) energy = readsheet.col_values(2) config = readsheet.col_values(3) ''' print(beta) print(gamma) print(energy) print(config) ''' beta_2f = [round(x,2) for x in beta] beta_gamma = dict(zip(beta_2f,gamma)) beta_energy = dict(zip(beta_2f,energy)) beta_config = dict(zip(beta_2f,config)) for i in range(0,len(beta_2f)): if energy[i] < beta_energy[beta_2f[i]]: beta_gamma[beta_2f[i]] = gamma[i] beta_energy[beta_2f[i]] = energy[i] beta_config[beta_2f[i]] = config[i] else: continue print(beta_gamma) print(beta_energy) print(beta_config) # write xls file write_excl = xlwt.Workbook(encoding='utf-8') excl_sheet = write_excl.add_sheet('Sheet1') j = 0 for key,value in beta_gamma.items(): excl_sheet.write(j,key) excl_sheet.write(j,1,value) excl_sheet.write(j,2,beta_energy[key]) excl_sheet.write(j,3,beta_config[key]) j = j+1 write_excl.save("xx.xls")
用到的庫
xlrd,讀取 excel 檔案的庫,可以讀取 xls 和 xlsx 檔案。
xlwt,寫入 excel 檔案的庫,只能寫成 xls 檔案。
思路
將資料按列讀出,寫入 4 個列表,再組裝為字典。由於字典中的 key 值是唯一的,因此該過程只是得到了 β-勢能面的字典,但勢能面的值不是最小的,需要遍歷判斷再賦值。最後將結果寫入新的 excel 表格。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。