我想创建一个多层次的表,尽管没有嵌套的依赖关系。我希望我的屏幕截图可以阐明我的意思:
print (df)
Country Type data
0 Ger VW oo
1 Ita Skoda kk
2 Ger Skoda oo
3 Ita VW ik
最上面是我的数据的表示形式,最下面是我希望获得的结果。数字是发生的总数。
下一步是将其可视化。
数据帧称为cleaned_df
非常感谢您的帮助!
答案 0 :(得分:1)
使用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()