0

我在数据框中有这些列:

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

有熊猫功能吗?

4

1 回答 1

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
于 2020-10-21T21:12:42.673 回答