我有一个数据框,其中多列代表分类变量,列中的数据是1或0,如下所示:
ID A B C D
100 1 0 0 0
101 0 0 1 0
102 0 1 0 0
103 0 0 0 1
我想将此信息表示为一列数据,例如:
ID VALUE
100 A
101 C
102 B
103 D
python中有一个方法可以实现这个结果吗?
答案 0 :(得分:0)
stack()
是一个经常使用的命令:
df2 = df.set_index('ID').stack().reset_index()
df2[df2[0] == 1][['ID', 'level_1']]
Out[370]:
ID level_1
0 100 A
6 101 C
9 102 B
15 103 D
这只是粗略的步骤,将输出格式化得很好,留给感兴趣的读者练习。