How can I map the headers to columns in pandas?

前端 未结 5 1573
隐瞒了意图╮
隐瞒了意图╮ 2020-12-16 01:15

I have a dataframe like :

A    B    C 
1    0    0
1    1    0
0    1    0
0    0    1

I want to have :

 A    B    C  lab         


        
5条回答
  •  Happy的楠姐
    2020-12-16 01:51

    Or using melt and groupby

    df1 = df.reset_index().melt('index')
    df1 = df1[df1.value==1]
    df['label'] = df1.groupby('index').variable.sum()
    df
    
    Out[976]: 
       A  B  C label
    0  1  0  0     A
    1  1  1  0    AB
    2  0  1  0     B
    3  0  0  1     C
    

    Or

    df['label'] = df.T.apply(lambda x: ''.join(x.index[x==1]),axis=0)
    df
    Out[984]: 
       A  B  C label
    0  1  0  0     A
    1  1  1  0    AB
    2  0  1  0     B
    3  0  0  1     C
    

提交回复
热议问题