Data Analysis of Students Exam Scores

Data Analysis of Students Exam Scores

Data Analysis of Students Exam Scores

Objective: The goal of this project is to analyze students' exam scores to uncover insights that can help improve teaching strategies, identify trends in student performance, and generate visualizations that clearly depict the data.

Description: In this project, I performed a detailed analysis of exam scores using real or simulated datasets. The data includes students' performance across multiple subjects and assessments. The main focus is to provide insights into how students are performing on average, identify patterns, and forecast possible outcomes for future assessments.

Key features include:

  • Data Cleaning and Preprocessing: I worked with raw exam data, removed any inconsistencies, handled missing values, and transformed the dataset into a usable format for further analysis.

  • Exploratory Data Analysis (EDA): Used NumPy and Pandas to summarize the data, calculate statistical metrics (like mean, median, and standard deviation), and understand key performance indicators such as overall average scores, highest and lowest scoring subjects, and distribution of student marks.

  • Visualizations:

    • Bar plots, histograms, and pie charts were created using Matplotlib and Seaborn to showcase score distributions, average scores per subject, and the number of students within different performance bands (e.g., pass, fail, distinction).

    • Box plots and violin plots were used to explore the variability in scores between different student groups.

  • Advanced Analysis:

    • Correlation analysis to identify the relationship between various subjects, and how improvement in one subject impacts others.

  • Actionable Insights:

    • Highlighted key areas where students are struggling the most.

    • Suggested strategies for improving overall student performance based on data trends and insights.

Tools Used:

  • Python

  • NumPy

  • Pandas

  • Matplotlib

  • Seaborn

  • Jupyter Notebook

VISUALIZATIONS
GENDER DISTIBUTION
Relation Btw Parents Education and Students Scores
Relation Btw Parents Maritial Status and Students Scores
Distibution of Ethnic Groups
Math Scores by Gender



Key Takeaways: This project demonstrates how data analysis can be used to track and improve student performance. By understanding the data, educators can make informed decisions to adjust their teaching methods and provide targeted support to students in need.

GITHUB LINK::https://github.com/ibtihajjutt/Student-Exam-Score-Analysis-Python

The project's dashboard and visualizations offer an intuitive overview of student performance, making it easier for schools and educators to derive actionable insights from the data transform your healthcare web presence today.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv("C:/Users/IBTIHAJ/Desktop/juypter projects/students exam score dataset/Expanded_data_with_more_features.csv")
print(df.head())
df.describe()
df.info()
df.isnull()
df.isnull().sum()
df = df.drop("Unnamed: 0", axis = 1 )
TRANSFORMATION
print(df.head())
#GENDER DISTIBUTION


plt.figure(figsize=(5,5))
GD = sns.countplot(data=df, x="Gender", hue="Gender", palette="Set2", legend = True)  
for container in GD.containers:
    GD.bar_label(container)
plt.show()

From the above chart we have analysized that the munber of female is greater then number of males.
gb = df.groupby("ParentEduc").agg({"MathScore":'mean',"ReadingScore":'mean',"WritingScore":'mean'})
print(gb)
plt.figure(figsize = (4,4))
sns.heatmap(gb, annot = True)
plt.title("Relation Btw Parents Education and Students Scores")
plt.show()
From the above analysis, we have concluded that Parents who have a good Education degree have a Good impact on their children's eduication.
gb2 = df.groupby("ParentMaritalStatus").agg({"MathScore": 'mean',"ReadingScore":'mean',"WritingScore":'mean'})
plt.figure(figsize = (4,4))
plt.title("Relation Btw Parents Maritial Status and Students Scores")
sns.heatmap(gb2, annot = True)
plt.show()
From the above analysis, we can concluded that the parents marirrage status have no/negilible Effect on their kids Edication.
Ethinic Group Distibution

print(df["EthnicGroup"].unique())
GroupA = df.loc[(df["EthnicGroup"] == "group A")].count()
GroupB = df.loc[(df["EthnicGroup"] == "group B")].count()
GroupC = df.loc[(df["EthnicGroup"] == "group C")].count()
GroupD = df.loc[(df["EthnicGroup"] == "group D")].count()
GroupE = df.loc[(df["EthnicGroup"] == "group E")].count()

mlist = [GroupA["EthnicGroup"], GroupB["EthnicGroup"], GroupC["EthnicGroup"], GroupD["EthnicGroup"], GroupE["EthnicGroup"]]
T = ["Group A","Group B","Group C","Group D","Group E"]
plt.title("Distibution of Ethnic Groups")
plt.pie(mlist, labels = T , autopct = "%1.2f%%" )
plt.show()

sns.boxplot(x='Gender', y='MathScore', data=df)
plt.title('Math Scores by Gender')
plt.show()

Other Projects

Let's Connect!

Let's Connect!

Let's Connect!

© Copyright 2024. All rights Reserved.

Created by

Ibtihaj

in

© Copyright 2024. All rights Reserved.

Created by

Ibtihaj

in