python - 使用 pandas groupby 时可以得到比例吗?
问题描述
目前我正在使用此处指定的方法来生成以下图:
我的代码是:
grouped_data = df.groupby(["ssc_b", "hsc_b"]).status.value_counts().unstack(2);
grouped_data.plot.bar(title = "Placements by Board of Education", rot = 45).set_xlabel("(SSC, HSC)");
但我想更改组内的值以表示 ech 组内的比例而不是计数本身,因为每组的样本数量变化很大。我觉得这样可以更容易地比较组。有没有一种简单的方法可以做到这一点?
解决方案
你可以传递normalize=True
给value_counts
:
grouped_data = (df.groupby(["ssc_b", "hsc_b"]).status
.value_counts(normalize=True).unstack(2)
)
另附注:Python 不需要;
在行尾。
推荐阅读
- cassandra - 如何添加到 cassandra 中的现有值?
- javascript - 有没有办法直接从树枝中的 .js 和 .css 文件中包含内联 js 和 css 代码?
- vue.js - Vue 测试无渲染组件(jsx scopedSlots)
- python - 如何在执行轮廓检测后画圆
- sql-server - 列名“id”无效 - 这是我尝试从表中选择特定列时的错误
- python - 根据pandas Dataframe中的多列替换多列值
- xcode - 应用商店连接错误:ITMS-90683:Info.plist 中缺少目的字符串 -
- sql-server - 当 Select distinct From Features 给出错误 ORDER BY 项目必须出现在选择列表中?
- html - textarea 背景颜色与 body 不同(略暗)
- python - 如何设置二维数组中某些元素的值,它们的位置在 numpy 列表中?