2017-04-19 93 views
1

我試圖評估通過GUI提供的簡單公式。 目前,我將數據存儲在一個字母作爲關鍵字的字典中(很高興能夠改變這種情況,但認爲這可能會使解決方案更進一步)。 最後,我想輸入一個簡單folmula如 「A - J * 2」GUI提供的評估公式

import pandas as pd 

data_dict = {} 
data_dict['A'] = pd.Series([1, 2, 3]) 
data_dict['C'] = pd.Series([0, 1, 2]) 
data_dict['E'] = pd.Series([0.5, 1.5, 2.5]) 
data_dict['J'] = pd.Series([4, 5, 6]) 

e.g. "A - J*2" ==> 
data_dict['A'] - data_dict['J'] * 2 

字母會動態變化。

回答

1

使用DataFrame.eval,但首先需要從dictSeries的創建DataFrame

df = pd.DataFrame(data_dict) 
print (df) 
    A C E J 
0 1 0 0.5 4 
1 2 1 1.5 5 
2 3 2 2.5 6 

print (df.eval("A - J*2")) 
0 -7 
1 -8 
2 -9 
dtype: int64 
+0

完美,非常感謝。做這項工作 – Tobias