Python PANDAS:如何将单热编码反转回分类

时间:2018-03-19 21:30:16

标签: python pandas numpy

我有一个包含以下总体布局的数据框:

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

我想添加一个额外的列,当它们为'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

欢迎任何提示!

1 个答案:

答案 0 :(得分:4)

你需要

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