Python的大熊猫:如何扭转一位热码编码返回范畴

Pyl*_*der 1 python numpy pandas

我有以下的一般布局的数据帧:

id,ind_1,ind_2_ind_3
1,0,1,0
1,1,0,0
2,0,1,0
2,0,0,1
3,0,0,1
3,1,0,0
Run Code Online (Sandbox Code Playgroud)

我想添加一个额外的列,其值是原始指标名称时,他们是“1”,这应该是这样的:

id,ind_1,ind_2,ind_3,ind_all
1,0,1,0,ind_2
1,1,0,0,ind_1
2,0,1,0,ind_2
2,0,0,1,ind_3
3,0,0,1,ind_3
3,1,0,0,ind_1
Run Code Online (Sandbox Code Playgroud)

欢迎任何提示!

Vai*_*ali 7

你需要

df['ind_all'] = (df.iloc[:, 1:] == 1).idxmax(1)


    id  ind_1   ind_2   ind_3   ind_all
0   1   0       1       0       ind_2
1   1   1       0       0       ind_1
2   2   0       1       0       ind_2
3   2   0       0       1       ind_3
4   3   0       0       1       ind_3
5   3   1       0       0       ind_1
Run Code Online (Sandbox Code Playgroud)

  • 如果使用idxmax,== 1的意义是什么?我认为例如df.set_index('id')。idxmax(1).values`更具可读性。 (3认同)