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 相关文章推荐
linux下安装easy_install的方法
Feb 10 Python
Python生成pdf文件的方法
Aug 04 Python
python基础之入门必看操作
Jul 26 Python
python判断字符串是否是json格式方法分享
Nov 07 Python
对python使用http、https代理的实例讲解
May 07 Python
python3 http提交json参数并获取返回值的方法
Dec 19 Python
Python实现FLV视频拼接功能
Jan 21 Python
django 多数据库及分库实现方式
Apr 01 Python
python读取hdfs并返回dataframe教程
Jun 05 Python
pandas统计重复值次数的方法实现
Feb 20 Python
解决TensorFlow训练模型及保存数量限制的问题
Mar 03 Python
用Python将库打包发布到pypi
Apr 13 Python
使用pandas生成/读取csv文件的方法实例
python自动化八大定位元素讲解
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
You might like
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
PHP IE中下载附件问题解决方法
2014/01/07 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
jquery 中多条件选择器,相对选择器,层次选择器的区别
2012/07/03 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
vue axios用法教程详解
2017/07/23 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
使用Python下载Bing图片(代码)
2013/11/07 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
python安装scipy的方法步骤
2019/06/26 Python
python字符串Intern机制详解
2019/07/01 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
html5 迷宫游戏(碰撞检测)实例一
2013/07/25 HTML / CSS
印度尼西亚最大的电商平台:Tokopedia(印尼版淘宝)
2017/12/02 全球购物
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
vue实现倒计时功能
2021/03/24 Vue.js
事业单位个人应聘自荐信
2013/09/21 职场文书
临床医学专业个人的自我评价
2013/09/27 职场文书
大学自荐信
2013/12/12 职场文书
集团公司人力资源部岗位职责
2014/01/03 职场文书
小石潭记导游词
2015/02/03 职场文书
总经理年会致辞
2015/07/29 职场文书
浅谈Node的内存泄露问题
2022/05/06 NodeJs
docker 制作mysql镜像并自动安装
2022/05/20 Servers
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL