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