我有一个代码,可以从公式文件和值文件中读取,以将评估值打印到另一个输出描述符文件中。公式文件如下所示:
a+b*c m=0.56
(a/b)*(c/d) m=0.44
(c-a)*a m=0.23
...
<50000 entries>
...
输入值文件如下:
name a b c d
pele 0.1 23 -0.4 1.6
dida 1 11.2 0.9 7.2
kaka 2.3 10.9 -0.34 13.2
.....
<100 entries>
....
输出描述符文件看起来像
100.32 34.11 0.33 -9.54 ...
...
<100 x 50000> shaped file
...
现在,当代码从公式文件中读取代码时,它将去除除公式之外的任何不必要的加法(例如m = 0.23等),并遍历数据文件的每一行以生成单个值,并将其写入输出中描述符文件。简而言之,输出描述符文件中的一行是每个样本(例如pele)的所有公式的值。这适用于所有标本。
最小的工作示例如下所示
for i,r in data.iterrows():
# <reads value from data/value file to variables>
for j in range(len(df)):
f = str(df.iloc[j])
p=f[1:].strip() #to remove a 0 and all leading spaces
sep = '\n'
rest = p.split(sep, 1)[0] #to remove dtype=object and other such info
e = eval(rest)
print(e, end=" ")
print("\n")
这可以一直运行到第一个样本的第501个公式,此后它会抛出如下错误消息:
Traceback (most recent call last):
File "part1.py", line 46, in <module>
e = eval(rest)
File "<string>", line 1
(((a+c)+abs(a-b))/((d*c)*abs(a-b...
^
SyntaxError: invalid syntax
我检查了该位置的公式文件,它列出了整个公式,而不是错误中显示的此...
。现在,我对此一无所知,不知道哪里出了问题。任何帮助表示赞赏。