根据行中的条件将列添加到数据框

Adding a column to a dataframe based on criteria in the row

我有一个这样的数据框:

case    sex     is1     is5     is10    im1     im5     im10
686     m       0.1406  0.2997  0.1490  0.1339  0.1350  0.1417
950     f       0.1602  0.3448  0.1719  0.0884  0.0962  0.1385
1005    f       0.1641  0.2606  0.1507  0.1306  0.1613  0.1328
1005    m       0.1456  0.3097  0.1825  0.1116  0.1295  0.1211

我想使用公式添加第 9 列,比如

if df['sex'] == 'm':
    df['new col']=const1*df['is1']+const2*df['is5']+.....+const6*df['im10']
else:
    df['new col'] = const7*df['is1']+.....const12*df['im10']

我该怎么做?

试试这个:

df['new col'] = np.where(df.sex=='m', 
                         df.drop(['case','sex'],1).dot(const_m), 
                         df.drop(['case','sex'],1).dot(const_f))

其中 const_mmale 的系数列表,const_ffemale

的系数列表