2016-12-13 66 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