前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pandas速成笔记(5)-快速分析平均值、总和

pandas速成笔记(5)-快速分析平均值、总和

作者头像
菩提树下的杨过
发布2022-04-27 10:54:18
1.5K0
发布2022-04-27 10:54:18
举报
文章被收录于专栏:菩提树下的杨过

上篇继续,记得小时候读书那会儿,还没有双减,每次考试完,大家最关心的就是全班的成绩分布,假如有下面一张成绩表:

老师们通常很快就会算出『平均分、总分』这些关键指标,然后各班之间,就开始攀比:

当然,这些在Excel里用SUM/AVERAGE函数,再结合自动填充很容易实现,pandas里要如何类似统计呢?

代码语言:javascript
复制
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)

结果:

代码语言:javascript
复制
   学号  语文  数学  科学  英语
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
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档