Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据行中的条件将列添加到数据帧_Python_Pandas_Numpy_Dataframe_Calculated Columns - Fatal编程技术网

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

Python 根据行中的条件将列添加到数据帧,python,pandas,numpy,dataframe,calculated-columns,Python,Pandas,Numpy,Dataframe,Calculated Columns,我有这样一个数据帧: 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.16

我有这样一个数据帧:

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\u m
是男性的系数列表,
const\u f
是女性的系数列表

对不起,我删除了我的问题,因为我找到了保留所需列的方法。它们都是以“我”开头的。再次感谢。@DPdl,很高兴我能帮忙!:)或者我们可以使用
df.filter(regex=r'^i[sm]\d+)