作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
code_module final_result
AAA Distinction 44
Fail 91
Pass 487
Withdrawn 126
这是Python代码的结果
studentInfo.groupby(['code_module','final_result']).agg({'code_module':[np.size]})
数学是 AAA.pass/AAA.total
总数是上述所有数字的总和。
最佳答案
我相信你需要SeriesGroupBy.value_counts
带参数标准化
:
s1 = studentInfo.groupby('code_module')['final_result'].value_counts(normalize=True)
print (s1)
code_module final_result
AAA Pass 0.651070
Withdrawn 0.168449
Fail 0.121658
Distinction 0.058824
Name: final_result, dtype: float64
或者将您的简化解决方案划分为 DataFrameGroupBy.size
按 MultiIndex
第一级的 sum
计算
s = studentInfo.groupby(['code_module','final_result']).size()
s2 = s.div(s.sum(level=0), level=0)
print (s2)
code_module final_result
AAA Distinction 0.058824
Fail 0.121658
Pass 0.651070
Withdrawn 0.168449
dtype: float64
解决方案之间的差异是 value_counts
按降序返回输出 Series
,以便第一个元素是最常出现的元素,size
不是.
关于python - GROUP BY python 后总大小的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53896517/
我是一名优秀的程序员,十分优秀!