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实现竖排打印传单手机号码易撕条
Mar 16 Python
对Python新手编程过程中如何规避一些常见问题的建议
Apr 01 Python
在Python的Django框架中获取单个对象数据的简单方法
Jul 17 Python
python 内置函数filter
Jun 01 Python
Pandas 按索引合并数据集的方法
Nov 15 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
Apr 16 Python
Python Django给admin添加Action的方法实例详解
Apr 29 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
Jan 25 Python
利用python画出AUC曲线的实例
Feb 28 Python
Python+redis通过限流保护高并发系统
Apr 15 Python
打印tensorflow恢复模型中所有变量与操作节点方式
May 26 Python
Django如何与Ajax交互
Apr 29 Python
使用pandas生成/读取csv文件的方法实例
python自动化八大定位元素讲解
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
You might like
德生PL660的电路分析和打磨
2021/03/02 无线电
Java中final关键字详解
2015/08/10 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
javascript面向对象编程代码
2011/12/19 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
javascript制作照片墙及制作过程中出现的问题
2016/04/04 Javascript
基于javascript编写简单日历
2016/05/02 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
微信小程序实现上传照片代码实例解析
2020/08/04 Javascript
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
python模拟enum枚举类型的方法小结
2015/04/30 Python
python 默认参数问题的陷阱
2016/02/29 Python
python自动翻译实现方法
2016/05/28 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
Python实现自定义函数的5种常见形式分析
2018/06/16 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
Python实现鼠标自动在屏幕上随机移动功能
2020/03/14 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
个人简历自我评价八例
2013/10/31 职场文书
行政文员岗位职责
2013/11/08 职场文书
小学清明节活动方案
2014/03/08 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python
React Native项目框架搭建的一些心得体会
2021/05/28 Javascript