python利用pandas分析学生期末成绩实例代码


Posted in Python onJuly 09, 2021

安装Pandas

Pandas是构建在Python编程语言之上的一个快速、强大、灵活且易于使用的开源数据分析和操作工具。Pandas是基于Numpy的专业数据分析工具,可以灵活高效的处理各种数据集。

我们使用pip进行安装(如果没有可自行查询如何安装pip)安装panda最简单的方法是将其作为Anaconda的一部分安装,Anaconda主要用于数据分析和科学计算。还提供源代码、PyPI、ActivePython、各种Linux发行版或开发版本进行安装的说明。

当然,最为基础的Python环境还是少不了的,如果你是Linux或使用的Mac就不用安装Python了。

python利用pandas分析学生期末成绩实例代码

pip install pandas

分析过程

1.从excel文件中读出本班同学的成绩册,并处理好缺失值。

2.根据‘加分'和‘减分'两列统计出平时成绩。

3.将实验报告成绩从ABCD转换为百分制,统计出实验成绩。A为90分,B为75分,C为60分,D为40分。

4.随机生成假设的期末成绩,取值区间为40-100分。将自己的期末成绩改成你觉得可能考到的分数。

5.按照平时成绩20%,实验成绩30%,期末成绩50%的比例计算综合成绩。

6.输出你自己的平时成绩,实验成绩,期末成绩和综合成绩。

7.统计全班综合成绩[90,100],[80,89],[70,79],[60-69],[0,59]各段成绩的人数,并画饼图。

8.将完整的成绩保存到score.xlsx文件中,打开excel检查输出是否正确。

完整实例

准备工作:导入需要用到的模块

import pandas as pd
import numpy as np
import random
from matplotlib import pyplot as plt

(1)从excel文件中读出本班同学的成绩册,并处理好缺失值。

df=pd.read_csv("4班平时成绩.csv",encoding="gbk")
df=df.rename(columns={"ID":"学号"})#将列名ID重命名
df.set_index("姓名",inplace=True)#将姓名作为index
df=df.fillna(method="backfill")#处理缺失值

(2)根据‘加分'和‘减分'两列统计出平时成绩。

df["平时成绩"]=df["平时成绩"]-df["减分"]
df=df.drop("减分",axis=1)#删除列

(3)将实验报告成绩从ABCD转换为百分制,统计出实验成绩。A为90分,B为75分,C为60分,D为40分。

def m(x):#2 将ABCD转化为对应的分数
    if x=="A":
        return 90
    if x=="B":
        return 75
    if x=="C":
        return 60
    if x=="D":
        return 40
df["第一次实验报告"]=df.第一次实验报告.map(m)
df["第二次实验报告"]=df.第二次实验报告.map(m)
df["第三次实验报告"]=df.第三次实验报告.map(m)

(4)随机生成假设的期末成绩,取值区间为40-100分。将自己的期末成绩改成你觉得可能考到的分数。

def cj(x):
    return random.randint(40,100)
df["期末成绩"]=""
df["期末成绩"]=df.期末成绩.map(cj)
df

(5)按照平时成绩20%,实验成绩30%,期末成绩50%的比例计算综合成绩。

df["综合成绩"]=df["期末成绩"]*0.5+df["平时成绩"]*0.2+df["第一次实验报告"]*0.1+\
                            df["第二次实验报告"]*0.1+df["第三次实验报告"]*0.1
df

(6)输出你自己的平时成绩,实验成绩,期末成绩和综合成绩。

df[df.姓名=='只为你220']

(7)统计全班综合成绩[90,100],[80,89],[70,79],[60-69],[0,59]各段成绩的人数,并画饼图。

y=pd.cut(df['综合成绩'],bins=[0,60,70,80,90,100],\
         labels=['0-59','60-69','70-79','80-89','90-100'])#分区间
a=y.value_counts()#统计区间人数
print(a)
plt.rcParams['font.sans-serif']=['SimHei']
a.plot(kind='pie',title='学生成绩区间统计图')

python利用pandas分析学生期末成绩实例代码

(8)将完整的成绩保存到score.xlsx文件中,打开excel检查输出是否正确。

将结果保存为.xlsx文件

df.to_excel(excel_writer="score.xlsx",index=False,encoding='utf-8')

将刚刚保存的.xlsx文件打开,查看结果是否正确

pd.read_excel("score.xlsx")

总结

到此这篇关于python利用pandas分析学生期末成绩码的文章就介绍到这了,更多相关pandas分析期末成绩内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
整理Python最基本的操作字典的方法
Apr 24 Python
用Python中的字典来处理索引统计的方法
May 05 Python
Python 自动化表单提交实例代码
Jun 08 Python
python2.6.6如何升级到python2.7.14
Apr 08 Python
numpy.linspace 生成等差数组的方法
Jul 02 Python
pycharm中成功运行图片的配置教程
Oct 28 Python
解决Pycharm下面出现No R interpreter defined的问题
Oct 29 Python
python抓取搜狗微信公众号文章
Apr 01 Python
python手写均值滤波
Feb 19 Python
django queryset相加和筛选教程
May 18 Python
Tensorflow与Keras自适应使用显存方式
Jun 22 Python
python中查看.db文件中表格的名字及表格中的字段操作
Jul 07 Python
使用pandas生成/读取csv文件的方法实例
python自动化八大定位元素讲解
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
You might like
php上传文件问题汇总
2015/01/30 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
js中直接声明一个对象的方法
2014/08/10 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
微信JS接口汇总及使用详解
2015/01/09 Javascript
跟我学习JScript的Bug与内存管理
2015/11/18 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
JS实现的简单下拉框联动功能示例
2018/05/11 Javascript
[03:30]完美盛典趣味短片 CSGO2019年度名场面
2019/12/07 DOTA
浅谈Python中的bs4基础
2018/10/21 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
澳洲本土太阳镜品牌:Quay Australia
2019/07/29 全球购物
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
高级Java程序员面试要点
2013/08/02 面试题
服装机修工岗位职责
2013/12/26 职场文书
挂牌仪式策划方案
2014/05/18 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
入党转正申请书范文
2019/05/20 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python
Django cookie和session的应用场景及如何使用
2021/04/29 Python
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android