目录
数据分析案例:教育数据分析
1. 项目背景
在教育领域,通过对学生成绩和行为数据进行分析,可以发现影响学生学习效果的关键因素,及时干预学习困难学生,优化教学资源分配。本案例以某高中学期末考试与平时表现数据为例,演示如何利用 Pandas、Matplotlib 和 Scikit-learn 构建学生成绩预测模型,并进行多维度分析,为教育管理与教学改进提供数据支持。
2. 数据加载与预处理
2.1 数据说明
假设我们有一份包含 500 名学生数据的 CSV 文件 student_performance.csv
,字段包括:
student_id
:学生编号gender
:性别(Male/Female)age
:年龄study_time
:每周学习时长(小时)absences
:缺勤次数G1
、G2
、G3
:第一、二、三次考试成绩(0–100)failures
:不及格科目次数
目标:预测学生最后一次考试成绩 G3
是否及格(≥60 分)。
2.2 读取数据
import pandas as pd
df = pd.read_csv('student_performance.csv')
print("数据预览:")
print(df.head())
print("\n数据维度:", df.shape)
2.3 缺失值与异常处理
# 缺失值检查
print(df.isnull().sum())
# 若存在缺失,可按列均值或中位数填充
df['study_time'].fillna(df['study_time'].median(), inplace=True)
# 检查异常值:年龄范围合理性
print(df['age'].describe())
df = df[df['age'].between(15, 22)] # 保留 15–22 岁学生
3. 探索性数据分析(EDA)
3.1 性别分布
import matplotlib.pyplot as plt
df['gender'].value_counts().plot.pie(
autopct='%1.1f%%', title='性别分布'
)
plt.ylabel('')
plt.show()
<