帆软之FineReport决策报表《学生学业水平分析》

FineReport制作决策报表《学生学业表现分析》

目标

学生学业表现是反映高校教学成果的重要的一方面,一般以GPA(Grade Point Average平均学分绩点)来表示学业成绩,本文通过一些描述统计来分析某高校一学期的所有学生成绩,来指导学校的管理工作。

工具

数据处理:Python(scipy.stats)
仪表板:FR

过程及结果

代码计算各个学校各专业学生的成绩期望(实际意义:从该专业随机抽一名学生,他的成绩水平)。
计算的结果只用于仪表板中‘绩点期望TOP10’图表展示,大部分图表和简单计算FR就可以完成。

import pymysql
from scipy import stats
import numpy as np
conn=pymysql.connect(host='xxxx',port=3306,user='xxxx',password='xxxx',database='xxxx',charset='utf8')
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
#获取成绩并计算绩点
cursor.execute("查出学生所属专业、GPA")#直接sql计算GPA,计算公式:(∑课程绩点*学分)/总学分
result= cursor.fetchall()
result = [[i['zy'],i['GPA']] for i in result]

#绩点正态分布验证
gpa = np.array([i[1] for i in result])
#print(stats.shapiro(gpa))#少数据用这个
print(stats.kstest(gpa, 'norm', (gpa.mean(),gpa.std())))#正态分布建议用KS检验
#print(stats.anderson(gpa, dist='norm'))#能检测多种分布

#求绩点期望并写入数据库
import time
bj=list(set([i[0] for i in result]))
for each in bj:
    g = [float(i[1]) for i in result if i[0]==each]
    E = stats.norm.fit(g)[0]
    cursor.execute("update student_report.gpa set type = '"+str(round(E,2))+"' where zy = '"+each+"'")
    conn.commit()
    time.sleep(0.7)

在这里插入图片描述

仪表板说明

1.从学院、年级、专业三维度比较GPA的均值,分析分布趋势,正偏态(波峰偏右)代表成绩好的学生多
2.从课程类别、课程类型两维度以雷达图展示GPA均值
3.班级GPA排名、成绩差异排名,可对相应班进行奖惩或整改预警
4.绩点期望TOP10专业,反映学校学生实力较强的10个专业

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值