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编写生成验证码的脚本的教程
May 04 Python
Python实现Smtplib发送带有各种附件的邮件实例
Jun 05 Python
Python中音频处理库pydub的使用教程
Jun 07 Python
Python入门之三角函数全解【收藏】
Nov 08 Python
Python中类的初始化特殊方法
Dec 01 Python
Python yield与实现方法代码分析
Feb 06 Python
在cmd命令行里进入和退出Python程序的方法
May 12 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
pandas DataFrame 删除重复的行的实现方法
Jan 29 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
Aug 30 Python
Python使用扩展库pywin32实现批量文档打印实例
Apr 09 Python
Python实例教程之检索输出月份日历表
Dec 16 Python
使用pandas生成/读取csv文件的方法实例
python自动化八大定位元素讲解
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
You might like
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
javascript 简单抽屉效果的实现代码
2010/03/09 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
jQuery 无限级菜单的简单实例
2014/02/21 Javascript
JavaScript常用的弹出广告及背投广告实现方法
2015/02/06 Javascript
jQuery根据元素值删除数组元素的方法
2015/06/24 Javascript
javascript 判断两个日期之差的示例代码
2015/09/05 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
2017/02/18 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
在vue中实现点击选择框阻止弹出层消失的方法
2018/09/15 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
2019/10/12 Javascript
vue:el-input输入时限制输入的类型操作
2020/08/05 Javascript
wxPython窗口的继承机制实例分析
2014/09/28 Python
Python中的迭代器与生成器高级用法解析
2016/06/28 Python
pandas重新生成索引的方法
2018/11/06 Python
Python实现语音识别和语音合成功能
2019/09/20 Python
超实用的 30 段 Python 案例
2019/10/10 Python
python selenium xpath定位操作
2020/09/01 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
苹果中国官方网站:Apple中国
2016/07/22 全球购物
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
护士岗位职责
2014/02/16 职场文书
北体毕业生求职信
2014/02/28 职场文书
校优秀毕业生主要事迹
2014/05/26 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers