Python 统计学生成绩并进行可视化统计

使用Python对学生成绩进行统计分析,包括男女比例、选课情况、成绩分布、缺课与成绩关系以及成绩与班级关系的可视化展示。
摘要由CSDN通过智能技术生成

Python 统计学生成绩并进行可视化统计

实验目的

​ 对学生学习情况进行数据可视化分析

实验数据

xAPI-Edu-Data 来源于阿里云天池

实验内容
  1. 分析学校的男女比例,并判断男女学生的选课情况和学习情况
  2. 看各学科的选课情况及成绩分布
  3. 看缺课与成绩的关系
  4. 看成绩和班级的关系

列索引

'''
'gender', 'NationalITy', 'PlaceofBirth', 'StageID', 'GradeID',
'SectionID', 'Topic', 'Semester', 'Relation', 'raisedhands',
'VisITedResources', 'AnnouncementsView', 'Discussion',
'ParentAnsweringSurvey', 'ParentschoolSatisfaction',
'StudentAbsenceDays', 'Class'
'''
  • Class :班级
  • gender:性别
  • Topic:课程名称
  • StudentAbsenceDays:缺课天数
  • SectionID:班级号

内容一

#首先看一下学生的男女比例
gender = stu['gender'].value_counts(ascending=True)		#求每一个元素的个数并排序
gender.plot(kind='pie',shadow=True,explode=(0,0.1),autopct='%1.1f%%',startangle=90,legend=False,colormap='Set3')
#画饼状图

在这里插入图片描述

#成绩人数比以及男女选课情况
dic = {
   }
dic2 = {
   }
for i in range(len(gender)):
    temp = stu['gender'] == gender.index[i]		#筛查找出同性别的学生
    dic[gender.index[i]] = stu[temp]['Class']
    dic[gender.index[i]] = dic[gender.index[i]].value_counts(ascending=True)
   
    dic2[gender.index[i]] = stu[temp]['Topic']
    dic2[gender.index[i]] = dic2[gender.index[i]].value_counts(ascending=True)
dic_gen = pd.DataFrame(dic)
dic_gen['F'] = dic_gen['F']/np.sum(dic_gen['F'])
dic_gen['M'] = dic_gen['M']/np.sum(dic_gen['M'])
dic_gen.plot(kind='bar',rot=0,colormap='Set3')

dic2_sel = pd.DataFrame(dic2)
dic2_sel.plot(kind='pie',subplots=True,figsize=(20,20),legend=None,colormap='Set3',fontsize=15)
#从图中可以看出,女生成绩好一点,但男生成绩更加集中
#从选课情况看女生选语言选得要比男生多,但男生选IT和数学选得比女生多

在这里插入图片描述

在这里插入图片描述

#最后看一下全体同学情况
grade = stu['Class'].value_counts(ascending=True)
grade = grade[['L','M','H']]
grade.plot(kind='bar',rot=0)
#看起来也比较服从正态分布
  • 10
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值