前言:数据科学大作业,学生成绩评价与预测。
数据采集-预处理-探索性分析—数据分析与洞见—结果展现—决策支持

-导入相应库并读取文件

import pandas as pd
import numpy as np
all_score = pd.read_csv(r"C:\Users\shezhiyuan\Desktop\18大数据成绩.csv")  # 读入csv文件 编译器不一样把utf-8 改为gbk
pd.options.display.max_rows = None   # 显示所有行

-数据预处理
只读入和我们数据处理相关的列

all_score2= pd.read_csv(r"C:\Users\shezhiyuan\Desktop\18大数据成绩.csv", usecols=['Task_No', 'CurName','StuName','StuClass','Grade','CurCreditHour'])
# 观察数据得上学期得课程都是以任务号'20191'开头,将其取出
all_score2['Task_No'] = all_score2['Task_No'].apply(str)     #任务号转为字符串形式
all_score3=all_score2.loc[all_score2['Task_No'].str.contains('20191')]
#删除这门成绩都为0的体育课
all_score4 =all_score3.loc[all_score3['Task_No'] != '201911107']
#print(all_score3.info())
#print(all_score3.head())

处理前和处理后:


观察数据并没有缺失值,即已得到我们想要的数据,下面开始对数据进行分析

-计算单科成绩绩点并插入最后一列

def Gpa(x):if x<60:return 0else:return x/10-5jidian=all_score4['Grade'].apply(Gpa)all_score4.insert(all_score4.shape[1],'GPA',jidian)  #插入最后一列

接下来算个人学期绩点,首先要得到个人的学期成绩单

personal = all_score4.groupby('StuName')
pers = personal.get_group('佘大炮').reset_index()
print((pers['GPA']*pers['CurCreditHour']/(pers['CurCreditHour'].sum())).sum()) #计算个人绩点

以列表加for循环得出本专业所有人的学期绩点

#先取出所有同学的姓名
stuname =[]
for indexs in all_score4['StuName']:if not indexs in stuname:   #去重stuname.append(indexs)
#print(stuname)#计算所有人的学期绩点
i=0
sturesult=[]    #以姓名加绩点的方式保存在列表中
personal = all_score4.groupby('StuName')
for name in stuname:pers = personal.get_group(name).reset_index()result=(pers['GPA']*pers['CurCreditHour']/(pers['CurCreditHour'].sum())).sum() #计算个人绩点#计算后面预测所需的相关分数fenshu=(pers[pers['CurName']=='数据结构']['Grade'].values[0]*4/10+  ##pers[pers['CurName']=='离散数学']['Grade'].values[0]*4/10+pers[pers['CurName']=='2019夏季短学期答辩考核']['Grade'].values[0]*2/10)sturesult.append([name,str(result),str(fenshu)])  #统一列表格式#print(name,':',result)i+=1
print('学生总人数:',i)~

及想要的各种信息。如绩点前五名:

-建模预测
可以取前几个学期的绩点作为特征值来预测本学期成绩,我始终感觉这种并不太具有代表性。我是用上学的几门专业课成绩和一门能够代表学习态度的课目按一定比值得出相关分数作为特征值建立线性回归模型。

直接导入线性回归模型

from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
valu = pd.DataFrame(sturesult,columns=['姓名','绩点','相关分数']) ##
valu=valu.sort_values(by='绩点' , ascending=False).reset_index(drop=True)  # 按绩点排序
valu.index=valu.index+1    # 索引从零开始
valu['绩点'] = valu['绩点'].apply(float)
valu['相关分数'] = valu['相关分数'].apply(float)~
data=valu.values  #dataframe转化成array
#拆分训练集
x_train= data[:,2,np.newaxis]
y_train= data[:,1,np.newaxis]
x_test= data[::2,2,np.newaxis]
y_test= data[::2,1,np.newaxis]

查看数据散点图

plt.scatter(x_train,y_train)
plt.show()

建模

#创建并拟合模型
model = LinearRegression()
model.fit(x_train,y_train)#模型评分(即准确率)
print('准确率:',model.score(x_test,y_test))

看下我们的回归线

plt.plot(x_train,y_train,'b.')
plt.plot(x_train,model.predict(x_train),'r')
plt.xlabel('相关分数',fontproperties='SimHei',fontsize=15)
plt.ylabel('绩点',fontproperties='SimHei',fontsize=15)
#plt.grid(True)
plt.axis([70,95,2,5])
plt.show()
#pre_y = model.predict(new_x) 可用如下方法预测个人成绩

-写在最后

嗯,退伍大半年,计算机对于我终于不再是一块板砖了

python学生成绩分析与预测相关推荐

  1. python数据分析学生成绩查询系统_python数据分析-学生成绩分析

    python数据分析-学生成绩分析 python数据分析-学生成绩分析 目标:分析学生成绩的影响因素 1.导入原始数据,以及需要用到的库 import pandas as pd import nump ...

  2. (附源码)python学生成绩管理系统 毕业设计 061011

    python学生成绩管理系统的设计与实现 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规 ...

  3. 用access做考场桌贴_利用Word、Excel、Access进行考务安排及学生成绩分析的有效途径-教育文档...

    利用 Word . Excel . Access 进行考务安排及学生成绩 分析的有效途径 一 问题的提出 在新课改教学评价过程中,学生考试评价扮演着重要的角 色. 考试安排的科学性和有效性是评价的基础 ...

  4. 查找和排序算法的学生成绩分析实验

    基于查找和排序算法的学生成绩分析实验 一.实验内容 二.实验原理 三.实验代码记录 四.实验结果 一.实验内容 编写程序将自己学号后面的8位同学的学号.姓名以及数学.英语和数据结构的成绩信息保存到学生 ...

  5. 3+1+2模式excel学生成绩分析模板探讨

    一.引言 设计的学生成绩分析模板的初衷是不动用VBA编写excel文件,增加文件可读性,迁移性,执行性.同时,设计全科分析模式,使其有成绩者均可以依据不同的模式从而能进行成绩分析 二.设计的小样 基本 ...

  6. 学生成绩分析管理系统

    一.开发目的 随着现代化社会的发展,每年都会有大量苦读寒窗的考生参加高考,但是由于竞争压力大,很多考生由于成绩不理想不能报考自己心仪的高等院校,一方面是由于自身能力不足,另一方面,在平常学习过程种,教 ...

  7. java学生成绩分析系统spring源码

    开发工具:idea (eclipse) 环境:jdk1.8  mysql 数据库库连接工具 navcat 学生成绩分析系统 系统主要使用技术 • Struts2--请求响应 • Spring--jav ...

  8. 成绩分析系统c语言,学生成绩分析及排名系统C语言程序设计课程设计实习报告...

    学生成绩分析及排名系统C语言程序设计课程设计实习报告 长江大学计算机上机实习报告题目学生成绩分析及排名系统姓名学院__专业班级学号指导教师20120222目录一设计目的1二课程设计摘要2三课程设计的任 ...

  9. 学科成绩python_学生成绩分析预测

    本文以学生的数据集为基础,利用python通过对学生的性别国籍以及课堂表现等数据进行分析,了解学生情况以及对学生的成绩进行预测. 数据来源 gender:性别:NationalITy:国籍:Place ...

  10. python制作成绩分析系统_python实现学生成绩测评系统

    本文实例为大家分享了python实现学生成绩测评系统的具体代码,供大家参考,具体内容如下 1.问题描述(功能要求): 根据实验指导书要求,完成相关软件系统的设计,要求内容翔实,条理清晰,图文并茂(流程 ...

最新文章

  1. linux备份svn仓库脚本,Centos详细搭建svn以及备份脚本
  2. play store显示“从服务器检索信息时出错。DF-DFERH-01”问题解决
  3. Qt Creator在设备上预览
  4. 关于导入oracle10g的数据到sqlserver2005里的方案总结
  5. 前端_网页编程 Form表单与模板引擎(下)
  6. linux中ssh启动报错,Linux(Ubuntu18)中启动ssh时的报错
  7. jQuery——入门(二)动画
  8. python怎么连接excel_python怎么连接excel
  9. C++ Make、Makefile、CMake和CMakeLists关系
  10. 联想教育应用使用说明(7.6版本)——第4章 网络控制工具的使用
  11. EasyExecl导出模板,实现动态下拉列
  12. win10开始菜单 此计算机,如何将win10电脑中的开始菜单设置成智能版
  13. 什么是等保(信息安全等级保护)?
  14. 优动漫PAINT下载的素材找不到怎么办?
  15. github python100天_GitHub - ychgithub/Python-100-Days: Python - 100天从新手到大师
  16. 心理月刊杂志心理月刊杂志社心理月刊编辑部2022年第11期目录
  17. 推荐书单——不定时更新
  18. 国内最火的10款Java开源项目
  19. 指南针 android gps,北斗GPS指南针
  20. 【ZYNQ】裸机 PS + PL 双网口实现之 lwip 库文件修改

热门文章

  1. minecraft有自带服务器吗,从无到有:一步一步开设Spigot Minecraft服务器
  2. delphi 可以自定义边框的文本框TSkinNormalEdit思路(QQ2011风格)
  3. 绘制流程图的基本规则
  4. BZOJ 3991 set维护dfs序
  5. Dotfuscator 混淆器混淆的我都糊涂啦
  6. SQLite3之事务机制详解
  7. 得一微YS9083XT量产工具及方法FW190402
  8. 从《硅谷传奇》看微软和苹果
  9. 【编译原理】自下而上语法分析(C/C++源码+实验报告)
  10. Oracle StorageTek磁带库产品线或将终结