如何获得满足条件的多个列索引

如何获得满足条件的多个列索引

我有如下数据:

   id  attribute1  attribute2  attribute3  attribute4  attribute5   new  otherattri
0   1           1           0           0           0           0     1           2
1   2           1           1           1           1           0  1234          12
2   3           0           0           0           0           1     5          21
3   4           1           0           1           0           0    13          93
4   5           0           0           0           1           0     4           2

我要计算的是名为new的列。我该怎么做才能在熊猫身上做到这一点呢?新列只是将dataframe中的前5列组合成一个新列,例如对于第4行,attribute1==1和attribute3==1,因此第4行的新列是13。
提前谢谢!

最佳答案

.dot()

df1=df.loc[:,df.columns[:-2]] #omitting the last 2 columns for reproducibility
df1['new']=df1.dot(df1.columns.str.replace('attribute',''))
print(df1)

    attribute1  attribute2  attribute3  attribute4  attribute5   new
id
1            1           0           0           0           0     1
2            1           1           1           1           0  1234
3            0           0           0           0           1     5
4            1           0           1           0           0    13
5            0           0           0           1           0     4

关于python - 如何获得满足条件的多个列索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57230109/

10-11 16:28