- Project Overview
- Why This Project?
- Features
- Technologies Used
- Project Architecture
- Installation Guide
- Usage Instructions
- Database Schema
- Key Insights
- Screenshots
- Future Enhancements
- Contact
Student Exam Performance Analysis is a comprehensive data analytics project that helps educational institutions analyze student performance patterns using Python, MySQL, and data visualization tools. The system processes student exam data to identify factors affecting academic performance and provides actionable insights.
- 30,641 student records analyzed
- 14 different features examined
- Multiple visualization techniques implemented
- SQL-based data management with 20+ queries
As a data analyst, I wanted to work on a real-world problem that has social impact. Education is the foundation of society, and understanding what affects student performance can help:
- ๐ฏ Identify struggling students early
- ๐ Optimize teaching methods
- ๐ฐ Allocate resources efficiently
- ๐จโ๐ฉโ๐งโ๐ฆ Support parents and educators
Educational institutions face challenges in:
- Understanding why some students underperform
- Identifying patterns in academic success
- Making data-driven decisions for interventions
- Tracking impact of test preparation programs
Through this project, I aimed to demonstrate:
- โ End-to-end data pipeline (ETL process)
- โ Database design and optimization
- โ Statistical analysis skills
- โ Data visualization expertise
- โ Business intelligence thinking
- โ CSV to MySQL data loading
- โ Data cleaning and preprocessing
- โ Missing value handling
- โ Feature engineering (TotalScore, AvgScore, PerformanceCategory)
- ๐ Univariate analysis (distributions)
- ๐ Bivariate analysis (correlations)
- ๐ฅ Heatmap visualizations
- ๐ Performance trend analysis
- ๐๏ธ 20+ SQL queries for insights
- ๐ Aggregations and grouping
- ๐ Statistical calculations
- ๐ฏ Performance segmentation
- ๐ Bar charts, histograms
- ๐ฅง Pie charts
- ๐ Line plots
- ๐ฅ Heatmaps
- ๐ฆ Box plots
| Technology | Purpose | Version |
|---|---|---|
| Python | Core programming language | 3.8+ |
| Pandas | Data manipulation | 1.5.0+ |
| NumPy | Numerical computing | 1.23.0+ |
| Matplotlib | Data visualization | 3.6.0+ |
| Seaborn | Statistical visualization | 0.12.0+ |
| Technology | Purpose | Version |
|---|---|---|
| MySQL | Relational database | 8.0+ |
| MySQL Connector | Python-MySQL bridge | 8.0.33+ |
| Tool | Purpose |
|---|---|
| Jupyter Notebook | Interactive analysis |
| VS Code | Code editor |
| Git | Version control |
โโโโโโโโโโโโโโโโโโโ
โ Raw CSV Data โ
โ (30,641 rows) โ
โโโโโโโโโโฌโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Data Cleaning โ
โ & Preprocessing โ
โ (Python/Pandas)โ
โโโโโโโโโโฌโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ MySQL Database โ
โ (Structured) โ
โโโโโโโโโโฌโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โผ โผ
โโโโโโโโโโโโโ โโโโโโโโโโโโ
โ Python EDAโ โSQL Queriesโ
โ (Jupyter) โ โ (Analysis)โ
โโโโโโโโโโโโโ โโโโโโโโโ โโโ
- Python 3.8 or higher
- MySQL Server 8.0 or higher
- pip (Python package manager)
- Git (optional, for cloning)
git clone https://github.com/yourusername/student-result-analysis.git
cd student-result-analysis# Windows
python -m venv venv
venv\Scripts\activate
# Linux/Mac
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txt# Login to MySQL
mysql -u root -p
# Create database
source mysql_setup.sqlEdit load_data_to_mysql.py and update:
DB_CONFIG = {
'host': 'localhost',
'user': 'your_username', # Change this
'password': 'your_password', # Change this
'database': 'student_analysis'
}python load_data_to_mysql.pyjupyter notebook student_eda_analysis.ipynbpython load_data_to_mysql.pyThis will:
- Read CSV file
- Clean data
- Create database tables
- Insert records
- Show summary statistics
mysql -u root -p student_analysis < sql_queries.sqlOr run individual queries from sql_queries.sql
jupyter notebook student_eda_analysis.ipynbRun cells sequentially to see:
- Data exploration
- Statistical analysis
- Visualizations
- Insights
| Column | Type | Description |
|---|---|---|
student_id |
INT (PK) | Unique identifier (Auto-increment) |
Gender |
VARCHAR(10) | Student gender (male/female) |
EthnicGroup |
VARCHAR(20) | Ethnic background |
ParentEduc |
VARCHAR(50) | Parent education level |
LunchType |
VARCHAR(20) | Lunch type (standard/free-reduced) |
TestPrep |
VARCHAR(20) | Test preparation status |
ParentMaritalStatus |
VARCHAR(20) | Marital status of parents |
PracticeSport |
VARCHAR(20) | Sports practice frequency |
IsFirstChild |
VARCHAR(5) | First child status (yes/no) |
NrSiblings |
INT | Number of siblings |
TransportMeans |
VARCHAR(20) | Mode of transport |
WklyStudyHours |
VARCHAR(10) | Weekly study hours |
MathScore |
INT | Math exam score (0-100) |
ReadingScore |
INT | Reading exam score (0-100) |
WritingScore |
INT | Writing exam score (0-100) |
TotalScore |
INT | Sum of all scores |
AvgScore |
DECIMAL(5,2) | Average score |
PerformanceCategory |
VARCHAR(20) | Performance level |
INDEX idx_gender (Gender)
INDEX idx_ethnic (EthnicGroup)
INDEX idx_performance (PerformanceCategory)
INDEX idx_avg_score (AvgScore)- ๐ Female students score 6.8% higher on average
- ๐ Writing shows largest gender gap (8.2%)
- ๐งฎ Math shows smallest gender gap (3.1%)
- โ Students completing test prep score 12.5% higher
- ๐ Impact strongest in Math (+14.2%)
- ๐ Impact moderate in Reading (+11.8%)
- ๐ Master's degree parents โ 82.3 average score
- ๐ซ High school parents โ 65.7 average score
- ๐ Clear positive correlation (r=0.64)
- ๐ฝ๏ธ Standard lunch โ 74.6 average
- ๐ Free/reduced lunch โ 64.2 average
- ๐ก Indicates socioeconomic impact
- โฐ >10 hours/week โ 78.4 average
- โฐ <5 hours/week โ 68.1 average
- ๐ Diminishing returns after 10 hours
+------------------+-------------------+
| Gender | Avg_Math_Score |
+------------------+-------------------+
| Female | 68.42 |
| Male | 66.18 |
+------------------+-------------------+
- Correlation heatmap showing relationships
- Score distribution histograms
- Performance category pie charts
- Gender-wise comparison bar charts
- Machine Learning predictions
- Student risk scoring
- Recommendation engine
- Real-time dashboard
- Mobile app integration
- Multi-year trend analysis
- Teacher performance correlation
- Attendance impact study
- Subject-wise deep dive
- Intervention tracking
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
Sumersing Patil
- ๐ง Email: sumerrajput0193@gmail.com
- ๐ผ LinkedIn: Sumersing Patil
- ๐ฑ GitHub: SumersingPatil2694
- Dataset source: Kaggle - Students Performance Dataset
- Inspiration: Real-world education analytics needs
- Tools: Python, MySQL.
๐ Total Files: 8
๐๏ธ Database Records: 30,641
๐ Visualizations: 15+