Python 组合多个指示符列

Python 组合多个指示符列,python,numpy,pandas,Python,Numpy,Pandas,我有一个dataframe,其中有多个列表示分类变量,列中的数据为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中是否有实现此结果的方法

我有一个dataframe,其中有多个列表示分类变量,列中的数据为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中是否有实现此结果的方法?

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

这只是一个粗略的步骤,将输出的格式设置得很好,留给感兴趣的读者作为练习。

完美!这正是我想要的。非常感谢。