Skip to content

Repository files navigation

📊 Student Performance Analysis

This project analyses student academic performance data using Python to identify patterns between study habits, attendance, previous academic performance and final grades.

The analysis was completed using Pandas, Matplotlib and Seaborn.

The dataset includes variables such as study time, absences, previous failures and parental education. Final grade (G3) was used as the primary outcome measure.

The dataset was cleaned and prepared prior to analysis, including delimiter formatting and variable preparation.


🔍 Analysis Focus

  • Does increased study time lead to better grades?
  • Do absences negatively impact performance?
  • Is there a relationship between previous failures and final results?
  • Does parental education have any influence?

📁 Dataset

Dataset contains 395 student records with 33 demographic, behavioural and academic variables.

  • Source: UCI Machine Learning Repository
  • Dataset: Student Performance Dataset

🧰 Tools Used

  • Python
  • Pandas
  • Matplotlib
  • Seaborn
  • Google Colab

🛠️ Key Skills Demonstrated

  • Data cleaning and preparation
  • Exploratory data analysis
  • Data visualisation
  • Use of Python libraries including Pandas, Matplotlib and Seaborn
  • Interpreting relationships between variables
  • Presenting findings clearly in a GitHub portfolio format

📊 Analysis & Visualisations

The project includes:

  • Histogram — distribution of final grades
  • Box plot — study time vs performance
  • Bar charts — average grades by category
  • Scatter plot — absences vs grades
  • Heatmap — correlation between variables

📈 Key Findings

  • Students reporting higher study time generally achieved higher final grades.
  • Increased absences were associated with lower performance.
  • Previous academic failures were strongly linked to lower final grades.
  • Parental education showed some variation in outcomes, but appeared less influential than study time, attendance and previous failures.
  • Final grade (G3) was used as the main outcome variable throughout the analysis.

Overall, study time, attendance and previous academic history appear to have the strongest relationship with student outcomes in this dataset.


📊 Visualisations

Distribution of Final Grades

Final Grades Histogram


Final Grades by Parental Education

Parental Education Bar Chart


Final Grades by Study Time

Study Time Boxplot


Average Final Grade by Study Time

Study Time Average Bar


Absences vs Final Grades

Absences Scatter


Correlation Between Variables

Correlation Heatmap


📄 Project Files

  • Student_Performance_Analysis.ipynb
  • Student_Performance_Analysis_Summary.pdf

About

Data analysis and visualisation of factors influencing student performance using Python, Pandas and Matplotlib.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages