首页 > 解决方案 > Pandas 多层次分组

问题描述

我想创建一个多层次表,尽管没有嵌套依赖项。我希望我的截图能澄清我的意思:

print (df)
  Country   Type data
0     Ger     VW   oo
1     Ita  Skoda   kk
2     Ger  Skoda   oo
3     Ita     VW   ik

顶部是我的数据的表示,底部是我希望达到的结果。数字是出现的总和。

我的下一步是可视化它。

数据框称为cleaned_df

非常感谢你的帮助!

标签: pythonpandaspandas-groupby

解决方案


用于DataFrame.melt重塑和MultiIndex Series添加GroupBy.size

s = df[['Country', 'Type']].melt(var_name='a', value_name='b').groupby(['a','b']).size()
print (s)
a        b    
Country  Ger      2
         Ita      2
Type     Skoda    2
         VW       2
dtype: int64

但是对于可视化应该更好:

s1 = df.groupby(['Country','Type']).size()
print (s1)
Country  Type 
Ger      Skoda    1
         VW       1
Ita      Skoda    1
         VW       1
dtype: int64

s1.unstack().plot.bar()

s1.unstack(0).plot.bar()

推荐阅读