组合多个指标列

时间:2014-08-19 14:59:12

标签: python numpy pandas

我有一个数据框,其中多列代表分类变量,列中的数据是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中有一个方法可以实现这个结果吗?

1 个答案:

答案 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

这只是粗略的步骤,将输出格式化得很好,留给感兴趣的读者练习。