python - Pandas 多层次分组
问题描述
我想创建一个多层次表,尽管没有嵌套依赖项。我希望我的截图能澄清我的意思:
print (df)
Country Type data
0 Ger VW oo
1 Ita Skoda kk
2 Ger Skoda oo
3 Ita VW ik
顶部是我的数据的表示,底部是我希望达到的结果。数字是出现的总和。
我的下一步是可视化它。
数据框称为cleaned_df
非常感谢你的帮助!
解决方案
用于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()
推荐阅读
- html - 背景图像未显示在 div 元素内
- core-image - CIWarpKernel 中的清除颜色
- mysql - MySQL - 无法在左连接和 2 个不同的选择范围内检索最大值
- office365 - WOPI 错误:抱歉,您无权编辑此文档
- javascript - 多次触发 JS 脚本
- c# - 如何检测在 Unity 中手动添加的线渲染器对碰撞器的触摸?
- typescript - Rollupjs 模块没有注册它的模块
- php - 如何获取正确的当前页面或类别 ID
- spring-boot - 当前请求不是多部分请求-当我将表单数据和有角度的对象发送到弹簧启动时
- reactjs - 如何删除 Froala 编辑器的所有实例?