Python Pandas:如何从堆叠的虚拟特征中重建分类特征?

时间:2018-08-09 09:50:01

标签: python pandas dummy-variable

我的数据框如下:

Files       attr_1     attr_2     attr_3 
file_1           X          X          X
file_2                      X
file_3           X                     X

我想将其转换为:

Files         attr   
file_1      attr_1       
file_1      attr_2    
file_1      attr_3     
file_2      attr_2                
file_3      attr_1      
file_3      attr_3         

我发现最接近的是这个问题:Reconstruct a categorical variable from dummies in pandas

但是我要使用stack()方法,我需要每个文件/属性只有一行,即以下内容:

Files       attr_1     attr_2     attr_3 
file_1           X         
file_1                      X          
file_1                                 X
file_2                      X
file_3           X                     
file_3                                 X

不幸的是,这不是我的情况。

最干净的方法是什么?

1 个答案:

答案 0 :(得分:1)

首先将Files设置为索引,然后设置stack(),然后设置reset_index()

df = (df.set_index('Files')
      .stack()
      .reset_index()[['Files', 'level_1']]
      .rename(columns={'level_1': 'attr'})
      )