如何扩展/展开Pandas Dataframe?

时间:2016-12-13 20:50:45

标签: python pandas dataframe

我有以下pandas数据帧:

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

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

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

如何做到这一点?

1 个答案:

答案 0 :(得分:3)

首先使用unstack,然后按dropleveladd_prefix删除顶级MultiIndex

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