pandas速成笔记(5)-快速分析平均值、总和
接上篇继续,记得小时候读书那会儿,还没有双减,每次考试完,大家最关心的就是全班的成绩分布,假如有下面一张成绩表:
老师们通常很快就会算出『平均分、总分』这些关键指标,然后各班之间,就开始攀比:
当然,这些在Excel里用SUM/AVERAGE函数,再结合自动填充很容易实现,pandas里要如何类似统计呢?
import pandas as pd # 注意:先不要设置索引(否则最后append时会有问题) score = pd.read_excel("./data/test.xlsx") print(score) # 把各科分数列先取出来 temp = score[['语文', '数学', '科学', '英语']] print("\n--------各科分数--------") print(temp) # 原表上,新增总分、平均分列,并按行统计 score["总分"] = temp.sum(axis=1) score["平均分"] = temp.mean(axis=1) print("\n--------每行添加[总分,平均分]--------") print(score) # 按列计算平均分 col_avg = score[['语文', '数学', '科学', '英语', '总分', '平均分']].mean() # 将得到的Serial追加到score表 score = score.append(col_avg, ignore_index=True) print("\n--------最终结果-------") print(score)
结果:
学号 语文 数学 科学 英语 0 张三 85 90 88 92 1 李四 78 86 90 82 2 王五 95 96 89 80 3 赵六 70 75 99 67 4 杨七 95 93 84 91 --------各科分数-------- 语文 数学 科学 英语 0 85 90 88 92 1 78 86 90 82 2 95 96 89 80 3 70 75 99 67 4 95 93 84 91 --------每行添加[总分,平均分]-------- 学号 语文 数学 科学 英语 总分 平均分 0 张三 85 90 88 92 355 88.75 1 李四 78 86 90 82 336 84.00 2 王五 95 96 89 80 360 90.00 3 赵六 70 75 99 67 311 77.75 4 杨七 95 93 84 91 363 90.75 --------最终结果------- 学号 语文 数学 科学 英语 总分 平均分 0 张三 85.0 90.0 88.0 92.0 355.0 88.75 1 李四 78.0 86.0 90.0 82.0 336.0 84.00 2 王五 95.0 96.0 89.0 80.0 360.0 90.00 3 赵六 70.0 75.0 99.0 67.0 311.0 77.75 4 杨七 95.0 93.0 84.0 91.0 363.0 90.75 5 NaN 84.6 88.0 90.0 82.4 345.0 86.25
作者:菩提树下的杨过
出处:http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。