2016-12-13 38 views
1

我有以下的熊猫数据框:如何展开/展开熊猫数据框?

        Counts 
Unique_ID  Subcategory 
a1    A    10440 
       B     312 
       C     119 
a2    A     899 
       B     27 
       C     26 
...   

每个Unique_ID有三个子类别ABC,每一个计数。有一种方法可以“展开”此数据框,以便子类别为列,计数为entires。这是我想要的:

Unique_ID  Subcategory_A  Subcategory_B  Subcategory_C 
a1    10440    312    119 
a2    899    27     26 

这是怎么回事?

回答

3

使用unstack第一,然后通过droplevel并删除MultiIndex顶层最后add_prefix

df1 = df.unstack() 
df1.columns = df1.columns.droplevel(0) 
df1 = df1.add_prefix('Subcategory_') 
print (df1) 
Subcategory Subcategory_A Subcategory_B Subcategory_C 
Unique_ID            
a1     10440   312   119 
a2      899    27    26 

如果需要重新索引和删除列名:

df1 = df.unstack() 
df1.columns = df1.columns.droplevel(0) 
df1 = df1.add_prefix('Subcategory_') 
     .reset_index() 
     .rename_axis(None, axis=1) 
print (df1) 
    Unique_ID Subcategory_A Subcategory_B Subcategory_C 
0  a1   10440   312   119 
1  a2   899    27    26