【数据分析与可视化】利用Python对学生成绩进行可视化分析实战(附源码)

简介: 【数据分析与可视化】利用Python对学生成绩进行可视化分析实战(附源码)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~

下面对学生成句和表现等数据可视化分析

1:导入模块

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['simhei']
plt.rcParams['font.serif'] = ['simhei']
import warnings
warnings.filterwarnings('ignore')

2:获取数据 并打印前四行

from matplotlib.font_manager import FontProperties
myfont=FontProperties(fname=r'C:\Windows\Fonts\SimHei.ttf',size=12)
sns.set(font=myfont.get_name())
df = pd.read_csv('.\data\StudentPerformance.csv')
df.head(4)

属性列表对应含义如下

Gender  性别

Nationality  国籍

PlaceofBirth 出生地

Stageid 学校级别

Gradeid 年级

Sectionid  班级

Topic 科目

semester 学期

ralation 孩子家庭教育负责人

raisedhands 学生上课举手的次数

announcementviews 学生浏览在线课件的次数

discussion 学生参与课堂讨论的次数

parentanswersurvey 家长是否填了学校的问卷

parentschoolsatisfaction 家长对于学校的满意度

studentabsencedays         学生缺勤天数

3:数据可视化分析

接下来线修改表列名 换成中文

df.rename(columns={'gender':'性别','NationalITy':'国籍','PlaceofBirth':'出生地',
                   'StageID':'学段','GradeID':'年级','SectionID':'班级','Topic':'科目',
                  'Semester':'学期','Relation':'监管人','raisedhands':'举手次数',
                  'VisITedResources':'浏览课件次数','AnnouncementsView':'浏览公告次数',
                  'Discussion':'讨论次数','ParentAnsweringSurvey':'父母问卷',
                  'ParentschoolSatisfaction':'家长满意度','StudentAbsenceDays':'缺勤次数',
                   'Class':'成绩'},inplace=True)
df.replace({'lowerlevel':'小学','MiddleSchool':'中学','HighSchool':'高中'},inplace=True)
df.columns

显示学期和学段的取值

然后修改数据

df.replace({'lowerlevel':'小学','MiddleSchool':'中学','HighSchool':'高中'},inplace=True)
df['性别'].replace({'M':'男','F':'女'},inplace=True)
df['学期'].replace({'S':'春季','F':'秋季'},inplace=True)
df.head(4)

查看空缺数据情况

df.isnull().sum()

查看数据统计情况

然后按成绩绘制计数柱状图

sns.countplot(x = '成绩', order = ['L', 'M', 'H'], data = df, linewidth=2,edgecolor=sns.color_palette("dark",4))

接着按性别绘制计数柱状图

sns.countplot(x = '性别', order = ['女', '男'],data = df)

按科目绘制计数柱状图

sns.set_style('whitegrid')
sns.set(rc={'figure.figsize':(16,8)},font=myfont.get_name(),font_scale=1.5)
sns.countplot(x = '科目', data = df)

按科目绘制不同成绩的计数柱状图

按性别和成绩绘制计数柱状图

sns.countplot(x = '性别', hue = '成绩',data = df, order = ['女', '男'], hue_order = ['L', 'M', 'H'])

按班级查看成绩分布比例

sns.countplot(x = '班级', hue='成绩', data=df, hue_order = ['L','M','H'])
# 从这里可以看出虽然每个班人数较少,但是没有那个班优秀的人数的比例比较突出,这个特征可以删除

分析4个表现和成绩的相关性

# 了解四个课堂和课后表现与成绩的相关性
fig, axes = plt.subplots(2,2,figsize=(14,10))
sns.barplot(x='成绩', y='浏览课件次数',data=df,order=['L','M','H'],ax=axes[0,0])
sns.barplot(x='成绩', y='浏览公告次数',data=df,order=['L','M','H'],ax=axes[0,1])
sns.barplot(x='成绩', y='举手次数',data=df,order=['L','M','H'],ax=axes[1,0])
sns.barplot(x='成绩', y='讨论次数',data=df,order=['L','M','H'],ax=axes[1,1])
# 在sns.barplot中,默认的计算方式为计算平均值

分析不同成绩学生的讨论情况

# 了解举手次数与成绩之间的相关性
sns.set(rc={'figure.figsize':(8,6)},font=myfont.get_name(),font_scale=1.5)
sns.boxplot(x='成绩',y='讨论次数',data=df,order=['L','M','H'])

分析举手次数和参加讨论次数的相关性

# 了解四个课堂后量化表现之间的相关性
# fig,axes = plt.subplots(2,1,figsize=(10,10))
sns.regplot(x='举手次数',y='讨论次数',order =4,data=df)
# sns.regplot(x='浏览公告次数',y='浏览课件次数',order=4,data=df,ax=axes[1])   ,ax=axes[0]

分析浏览课件次数 举手次数 浏览公告次数 讨论次数之间的相关性

# Correlation Matrix 相关性矩阵
corr = df[['浏览课件次数','举手次数','浏览公告次数','讨论次数']].corr()
corr

最后将相关矩阵用热力图可视化显示

# Correlation Matrix Visualization 相关性可视化
sns.heatmap(corr,xticklabels=corr.columns,yticklabels=corr.columns)

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
26天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
19天前
|
数据可视化 编译器 Python
Manim:数学可视化的强大工具 | python小知识
Manim(Manim Community Edition)是由3Blue1Brown的Grant Sanderson开发的数学动画引擎,专为数学和科学可视化设计。它结合了Python的灵活性与LaTeX的精确性,支持多领域的内容展示,能生成清晰、精确的数学动画,广泛应用于教育视频制作。安装简单,入门容易,适合教育工作者和编程爱好者使用。
80 7
|
1月前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
|
1月前
|
存储 数据可视化 数据挖掘
Python数据分析项目:抖音短视频达人粉丝增长趋势
Python数据分析项目:抖音短视频达人粉丝增长趋势
|
1月前
|
数据采集 存储 数据可视化
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
|
1月前
|
数据采集 数据可视化 数据挖掘
掌握Python数据分析,解锁数据驱动的决策能力
掌握Python数据分析,解锁数据驱动的决策能力
|
29天前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
84 4
数据分析的 10 个最佳 Python 库
|
4月前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
93 2
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
232 4
|
4月前
|
机器学习/深度学习 算法 数据挖掘
2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析
本文介绍了2023年第二届钉钉杯大学生大数据挑战赛初赛A题的Python代码分析,涉及智能手机用户监测数据分析中的聚类分析和APP使用情况的分类与回归问题。
103 0
2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析