2016-12-13 19 views
1

私は、次のパンダのデータフレームを持っています。各Unique_IDは3つのサブカテゴリーがありパンダのデータフレームをどのように展開/展開しますか?

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

ABC、カウント数とそれぞれ。サブカテゴリが列であり、カウントがエンティティであるように、このデータフレームを「展開」する方法があります。ここに私が望むものがあります:

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

どうやってこれを行いますか?

答えて

3

使用unstackはまず、その後、droplevelと最後add_prefixMultiIndexのトップレベルを削除します。

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 
関連する問題