У меня есть формула, хранящаяся в виде текста в DataFrame, я попытался l oop через строку, используя iteritems, она работала с небольшим набором данных, но потребовалась целая вечность, чтобы работать с 1 миллионами записей. Я пробовал следующее, но он продолжает выдавать синтаксическую ошибку.
Кто-нибудь может предложить решение или лучший способ?
import pandas as pd
import numpy as np
a = np.array([['1+1',''],['2+2',''],['x+3','3'],['x+5','7']])
df = pd.DataFrame(a,columns=['F','W'])
df['F'] = df.apply(lambda x: x['F'].replace('x',x['W']),axis=1)
df['New']=df.eval(str(df['F']))
print (df)
Редактировать: и ниже трассировка ошибки:
File "C:\Users\lalkailani\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\computation\expr.py", line 367, in visit
node = ast.fix_missing_locations(ast.parse(clean))
File "C:\Users\lalkailani\AppData\Local\Continuum\anaconda3\lib\ast.py", line 35, in parse
return compile(source, filename, mode, PyCF_ONLY_AST)
File "<unknown>", line 1
0 1 +1
^
SyntaxError: invalid syntax