我正在多個檔案中搜索值,以便為每個引數創建不同的資料庫。"groups["BRICK"]" 包含所有文本格式的檔案。
a_dict = ['RHO','CE','LAMBDA','THETA_POR','THETA_EFF','THETA_CAP','THETA_80','AW','MEW','KLEFF']
Brick_par = []
for bricks in groups["BRICK"]:
for par in a_dict:
file = open(bricks, 'r', encoding='latin-1')
file_txt = file.read() #leggo il file
regex = '((' (par) ') )\s =\s ([0-9] .?[0-9] )'
searched = re.search(regex, file_txt) #cerco la riga da modificare
Brick_par.append(searched[3])
Brick_par = pd.DataFrame({str(par):Brick_par})
如果我不使用回圈,而是單獨使用幾個引數(例如 CE),則腳本可以作業。這是因為有些檔案不包含某些引數。
我想知道是否有辦法“忽略”正則運算式在檔案中找不到任何內容的所有值。這樣我大概可以解決。
此外,我的目標是創建一個包含所有找到的引數的資料框。但那是后來的一步。
我得到的錯誤是:
TypeError: 'NoneType' 物件不可下標
正如diggusbickus所建議的:
a_dict = ['RHO','CE','LAMBDA','THETA_POR','THETA_EFF','THETA_CAP','THETA_80','AW','MEW','KLEFF']
Brick_par = []
for bricks in groups["BRICK"]:
for par in a_dict:
file = open(bricks, 'r', encoding='latin-1')
file_txt = file.read() #leggo il file
regex = '((' (par) ') )\s =\s ([0-9] .?[0-9] )'
searched = re.search(regex, file_txt)
if not searched: continue
Brick_par.append(searched[3])
file.close()
Brick_par = pd.DataFrame({str(par):Brick_par})
我的目標是創建一個資料框,其中包含每個引數的所有結果。感謝您的光臨。
uj5u.com熱心網友回復:
你應該首先做brick_par一個字典,因為那是你想給熊貓的
import pandas as pd
import re
a_dict = ['RHO','CE','LAMBDA','THETA_POR','THETA_EFF','THETA_CAP',
'THETA_80','AW','MEW','KLEFF']
brick_par = {k: [] for k in a_dict}
for bricks in groups["BRICK"]:
for par in a_dict:
with open(bricks, 'r', encoding='latin-1') as f:
file_txt = f.read() #leggo il file
regex = '((' (par) ') )\s =\s ([0-9] .?[0-9] )'
searched = re.search(regex, file_txt)
if not searched:
brick_par[par].append(None)
else:
brick_par[par].append(searched[3])
brick_par = pd.DataFrame(brick_par)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/383799.html
上一篇:是否有一個R函式可以計算自資料框中最近日期以來的天數?
下一篇:每個時間步的平均值
