• 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
  • 相关阅读:
    误加all_load引起的程序报错
    ConstraintLayout 约束布局
    前端判断是否APP客户端打开触屏,实现跳转APP原生组件交互之遐想
    TP5 多条件whereOr查询
    json手动解析详解
    Centos python 2.6 升级到 2.7
    js中click重复执行
    使用 Python 实现实用小工具
    使用 Python 编写密码爆破工具
    使用Python进行无线网络攻击
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/pandas_turorial_5.html
Copyright © 2020-2023  润新知