我在数据框中有这些列:
a b c d x
0 1 0 0 kevin
1 0 0 0 john
0 0 1 0 mary
1 0 0 0 jessica
0 0 0 1 joe
我需要将前四列变成一列。像这样:
new_col x
b kevin
a john
c mary
a jessica
d joe
有熊猫功能吗?
答案 0 :(得分:2)
使用dot
df['new'] = df.loc[:,'a':'d'].dot(df.columns[:-1])
Out[306]:
0 b
1 a
2 c
3 a
4 d
dtype: object
如果每行只有1个可以检查idxmax
df.loc[:,'a':'d'].idxmax(1)
Out[307]:
0 b
1 a
2 c
3 a
4 d
dtype: object