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+)