我正在几个文档中搜索值,为每个参数创建不同的数据库。"组["金砖"];包含文本格式的所有文档。
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(,那么脚本就可以工作了。这是因为有些文档不包含某些参数。
我想知道是否有办法";忽略";regex在文档中找不到的所有值。这样我可能就能解决问题。
此外,我的目标是创建一个包含所有参数的数据帧。但这是后一步。
我得到的错误是:
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})
我的目标是创建一个数据帧,其中包含每个参数的所有结果。感谢您的光临。
您应该首先将brick_par
作为dict,因为这正是您想要提供给pandas 的内容
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)