Python 多参数方程/表达式的求解
我有以下数据帧:Python 多参数方程/表达式的求解,python,pandas,numpy,Python,Pandas,Numpy,我有以下数据帧: ID Model_form A C Actual 1 Exp 2 1.4 4 2 Power model 1 0.2 3 3 Log 0.6 6 7 我试图根据模型形式求解不同的方程: If model form column contains 'exp' - A*(1-exp(C*actual)) If model fo
ID Model_form A C Actual
1 Exp 2 1.4 4
2 Power model 1 0.2 3
3 Log 0.6 6 7
我试图根据模型形式求解不同的方程:
If model form column contains 'exp' - A*(1-exp(C*actual))
If model form column contains 'pow' - A*(actual^C)
If model form column contains 'log' - A* Ln(1+C*optimal)
目前我正在解决这个问题,如下所示:
c1 = df['Model_form']].str.contains('exp', flags = re.IGNORECASE)
c2 = df['Model_form']].str.contains('pow', flags = re.IGNORECASE)
c3 = df['Model_form']].str.contains('log', flags = re.IGNORECASE)
df['Actual(y)'] = np.select([c1,c2,c3], [df.eval(df['A']*(1-
np.exp(df['C']*df['Actual'])),df['A']*
(df['Actual']**df['C']),df['A']*np.log(1+df['C']*df['Actual']))])
我得到一个错误:
eval() takes from 2 to 3 positional arguments but 4 were given
最后:
df['Actual(y)']=np.select([c1,c2,c3],labels)
df的输出:
ID Model_form A C Actual Actual(y)
0 1 Exp 2.0 1.44 4 -632.696658
1 2 Power model 1.0 0.20 3.0 1.245731
2 3 Log 0.6 6.00 7.0 2.256720
注意:在第1和第3种情况下使用df.eval()
是没有意义的,因为只有df['A']*(1-np.exp(df['C']*df['Actual'])
和df['A']*np.log(1+df['C']*df['Actual'])
会给您所需的输出,而df.eval()
除了在第2种情况下,什么也不做
您将遇到以下错误:
eval() takes from 2 to 3rd positional arguments but 4 were given
由于1stcondition中缺少括号)
:
df.eval(df['A']*(1-np.exp(df['C']*df['Actual'])))
^
#added ) parenthesis
什么是
flow\u变量
?错误,我已经删除了@DavidKaftan为什么您的第一个实际nan?很抱歉,这是我的错误…Thnx@DavidKaftan,请注意:)
df.eval(df['A']*(1-np.exp(df['C']*df['Actual'])))
^
#added ) parenthesis