Informatics
practices
PROJECT ON STUDENT’S PERFORMANCE
ANALYSIS
Made by: -
1.Saksham
Goel
2.Nishil M Jain
Class: - XII-I
CERTIFICATE
This is to certify that the Project entitled, Student’s
performance Analysis is a Bonafide work done by
Saksham Goel of class XII-I Session 2024-25 in
partial fulfilment of CBSE’s AISSCE Examination 2025
and has been carried out under my supervision and
guidance.
…………………………
…………………………….
Signature of Teacher Guide Signature of
External Examiner
……….……………..
Signature of Principal
ACKNOWLEDGEMENT
S
I would like to express my deepest gratitude
to my project guide and Informatics Practices
teacher, Ms. Pooja Thakur Ma’am for
guiding me immensely throughout the
project. Her constructive advice and constant
motivation have been responsible for the
successful completion of this project.
My sincere thanks go to Ms. Meenu Kanwar
Ma’am, our principal, for her coordination in
extending every possible support for the
completion of this project.
I also thank my parents for their motivation
and support. I must thank my classmates for
their timely help and support for completion
of this project.
Introduction
Analysis of student performance:
The trends in student performance analysis
and prediction reflect a shift towards more
data-driven, personalized, and ethical
approaches in education. By harnessing
technology and analytics, educational
institutions can better support student
success and adapt to the evolving landscape
of learning. Continuous innovation and
attention to ethical considerations will be
crucial as these trends develop further.
Syntax
import matplotlib.pyplot as plt
import pandas as pd
# Load the data
df = pd.read_csv("C:\\Users\\Saksham Goel\\OneDrive\\Desktop\\Saksham
Goel XII-I IP PROJECT\\StudentPerformanceFactors(New and final).csv")
def main_menu():
print('Python program for analysis of student data.')
print('----------------------------------------------------------')
print('1. Print data')
print('2. Dataframe functions')
print('3. Analyse data')
print('4. Data visualisation')
print('5. Modify data')
print('6. Exit')
while True:
main_menu()
choice = int(input('Enter choice: '))
if choice == 1:
print(df)
elif choice == 2:
print('1. Print column names\n2. Print indexes\n3. Print shape\n4.
Print size\n5. Print transpose' )
sub_choice = int(input('Enter choice: '))
if sub_choice == 1:
print(df.columns)
elif sub_choice == 2:
print(df.index)
elif sub_choice == 3:
print(df.shape)
elif sub_choice == 4:
print(df.size)
elif sub_choice == 5:
print(df.T)
elif choice == 3:
print('1. Print datatypes\n2. Print top/bottom rows\n3. Sort data\n4.
Search student')
sub_choice = int(input('Enter choice: '))
if sub_choice == 1:
print(df.dtypes)
elif sub_choice == 2:
num = int(input('Enter number of rows: '))
part = input('Top or bottom (t/b): ')
if part == 't':
print(df.head(num))
else:
print(df.tail(num))
elif sub_choice == 3:
col = input('Enter column to sort by: ')
order = input('Ascending or descending (asc/desc): ')
print(df.sort_values(by=[col], ascending=(order == 'asc')))
elif sub_choice == 4:
name = input('Enter student name: ')
print(df.loc[df['Name'] == name])
elif choice == 4:
print('1. Plot chart between columns\n2. Plot grouped chart')
sub_choice = int(input('Enter choice: '))
if sub_choice == 1:
chart_type = input('Enter chart type (bar, barh, line): ')
col1 = input('Enter first column: ')
col2 = input('Enter second column: ')
if col1 not in df.columns or col2 not in df.columns:
print("One or both columns do not exist in the dataset.")
continue
limit = int(input('Enter the number of records to display (e.g., 10): '))
data_to_plot = df.nlargest(limit, col2)
plt.figure(figsize=(10, 6))
if chart_type == 'bar':
data_to_plot.plot(kind='bar', x=col1, y=col2, legend=False,
color='skyblue', width=0.6)
elif chart_type == 'barh':
data_to_plot.plot(kind='barh', x=col1, y=col2, legend=False,
color='lightgreen', width=0.6)
elif chart_type == 'line':
data_to_plot.plot(kind='line', x=col1, y=col2, legend=False,
marker='o')
plt.title(f'{chart_type.capitalize()} Chart for {col1} vs {col2}')
plt.xlabel(col1)
plt.ylabel(col2)
plt.xticks(rotation=45)
plt.tight_layout()
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()
elif sub_choice == 2:
col = input('Enter column for grouping: ')
if col not in df.columns:
print(f"Column '{col}' does not exist in the dataset.")
continue
limit = int(input('Enter the number of groups to display (e.g., 10): '))
grouped_data = df.groupby(col).size().nlargest(limit)
plt.figure(figsize=(10, 6))
grouped_data.plot(kind='bar', color='coral', width=0.6)
plt.title(f'Grouped Bar Chart for {col}')
plt.ylabel('Count')
plt.xticks(rotation=45)
plt.tight_layout()
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()
elif choice == 5:
print('1. Modify student score\n2. Modify student info')
sub_choice = int(input('Enter choice: '))
name = input('Enter student name: ')
col = input('Enter column to modify: ')
new_value = input('Enter new value: ')
df.loc[df['Name'] == name, col] = new_value
print('Data updated.')
elif choice == 6:
print('Exiting program...')
break
Output
1. Printing Data:
2. DataFrame functions:
a) Printing column names
b) Printing index of dataframe
c)(i) Printing shape of dataframe
C(ii) Printing size of dataframe
C(iii) Printing Transpose of dataframe
3. Analyze Data
a) Print Datatypes
b) Print Top/Bottom rows
c)Print data in ascending/descending order
d) Print data to search student
4.Data visualization
a) Plotting chart between two
columns
b) Plotting grouped chart
bibliography
Informatics Practices NCERT
Informatics Practices by Sumita Arora
Matplotlib.org
geeksforgeeks.com
stackoverflow.com
Conclusion
This project helped me to improve my skills in
python and various libraries. We have a better
understanding of dataframes and graphs.
This project provided me with great experience
of creating further projects and apps on our own
which will help me a lot in future.
We are confident in our ability to create useful
programs without any problem.