Informatics practices
Project class XII
Project title:STUDENT RECORDS
Submitted to:Mrs.Neha choudhary
Concept used :Pandas and Matplotlib
Complier version:Python 3.7.0
Developed by:Manan Tyagi
Class:Xii G
BOARD ROLL NO. :14610415
CERTIFICATE
This is to certify that student record analysis infromatics
practices project is developed by Manan Tyagi under my
supervision in the computer lab
St.Andrews.Scots.Sr.Sec.School in the session 2022-
2023.The work done by them is original.
Ms.Neha Choudhary
Informatics Practices
Date:
ACKNOWLEDGEMENT
I would like to express my special thanks of gratitude to
my teacher Ms.Neha Choudhary who gave me the golden
opportunity to do this project. This also helped me to
know so many new things while doing the project I am
really thankful to you who gave me valuable suggestions
on this project made by which gave me inspiration to
improve my work.
INDEX
SNO DESCRIPTION PAGE.NO.
1 Introduction 1
2 Csv File data Format 2
3 Coding 2-8
4 Output screen 9-16
5 Bibliography 17
INTRODUCTION
Technlogy used:
Python 3.7.0
*Pandas
*Matplotlib
Pandas:Pandas is a software library written for the
Python programming language for data manipulation and
analysis. In particular, it offers data structures and
operations for manipulating numerical tables and time
series.
To import this library: import pandas as pd
MATPLOTLIB: Matplotlib is a plotting library for the
Python programming language its numerical
mathematics extension NumPy
To import this library: import matplotlib.pyplot as plt
Csv data
File name: stud.csv
File location : C:\Users\User\Downloads\
XIIInfo.Pract.176\stud.csv
Source code
import pandas as pd
import matplotlib.pyplot as plt
def main_menu():
print("\n------- Student Management System -------\n")
print("1. Create/Import New Dataframe")
print("2. Student Data Analysis")
print("3. Student Data Visualisation")
print("4. Export Dataframe to csv file")
def create_dataframe_menu():
print("\n------- Create Dataframe -------\n")
print("1. Create Dataframe")
print("2. Import Dataframe from csv file")
print("3. Add/Modify Custom Index")
print("4. Add/Modify Custom Column Head")
print("5. Return to main menu")
def analysis_menu():
print("\n------- Data Analysis using Python -------\n")
print("1. Display All records")
print("2. Print first nth records")
print("3. Print last nth records")
print("4. Print All records in order of Name")
print("5. Display student with maximum marks")
print("6. Display student with minimum marks")
print("7. Display students who have secured passing marks")
print("8. Print distinct classes")
print("9. Add a row to Dataframe")
print("10. Delete a row from Dataframe")
print("11. Return to main menu")
def visualisation_menu():
print("\n------- Visualisation using Matplotlib -------\n")
print("1. Plot Line graph (Subject wise marks)")
print("2. Plot Bar graph (Students, Marks)")
print("3. Plot Horizontal Bar graph (Student, Class)")
print("4. Return to main menu")
cols = ['admn','name','dob','class','maths','english','science','marks']
df = pd.DataFrame([],columns = cols) # Create an EmptyDataFrame
while True:
main_menu()
ch = int(input("Select Option: "))
if ch == 1:
# Create New Dataframe
create_dataframe_menu()
ch = int(input("Select Option: "))
if ch == 1:
data = []
while True:
ch = input("Add Row [y/n]")
if ch.lower() == 'y':
admn = int(input("Admission Number: "))
name = input("Student Name: ")
dob = input("DOB in dd-mm-yyyy format: ")
std = int(input("Class: "))
maths = float(input("Maths: "))
english = float(input("English: "))
science = float(input("Science: "))
marks = maths+english+science
data.append([admn, name, dob, std, marks])
else:
break
df = pd.DataFrame(data, columns = cols)
elif ch == 2:
file = input("File name: ")
df = pd.read_csv(file)
elif ch == 3:
index_list = input("Index List: ").split(",")
df.index = index_list
elif ch == 4:
column_list= input("Column List: ").split(",")
df.columns = column_list
print(df)
elif ch == 2:
while True:
# Student Data Analysis
analysis_menu()
ch = int(input("Select Option: "))
if ch == 1:
print(df)
elif ch == 2:
nth = int(input("Enter no of rows to display: "))
print(df.head(nth))
elif ch == 3:
nth = int(input("Enter number of rows to display: "))
print(df.tail(nth))
elif ch == 4:
print(df.sort_values(by='name'))
elif ch == 5:
print(df[df['marks'] == df['marks'].max()])
elif ch == 6:
print(df[df.marks == df["marks"].min()])
elif ch == 7:
print(df[df['marks']*100/240 >= 33])
elif ch == 8:
print(df['class'].unique())
elif ch == 9:
while True:
ch = input("Add Row [y/n]")
if ch.lower() == 'y':
admn = int(input("Admission Number: "))
name = input("Student Name: ")
dob = input("DOB in dd-mm-yyyy format: ")
std = int(input("Class: "))
maths = float(input("Maths: "))
english = float(input("English: "))
science = float(input("Science: "))
marks = maths+english+science
df = df.append({"admn": admn, "name":name,
"dob": dob, "class": std, "maths": maths,
"english": english, "science": science,
"marks": marks}, ignore_index=True)
else:
break
elif ch == 10:
print("1. Delete Row by Index")
print("2. Delete Row by Admn No.")
ch = int(input("Select Option: "))
if ch == 1:
idx = int(input("Index to delete: "))
df = df.drop(index = idx)
elif ch == 2:
admn = int(input("Admn no to delete: "))
df = df.drop(df[df["admn"] == admn].index)
else:
print("Wrong Option Selected! ")
else:
print("Returning to main menu")
break
elif ch == 3:
while True:
# Student Data Visualisation
visualisation_menu()
ch = int(input("Select Option: "))
if ch == 1:
plt.plot(df['name'], df['maths'], label='Maths', color = "blue", marker="*")
plt.plot(df['name'], df['english'], label='English', color = "green", marker="*")
plt.plot(df['name'], df['science'], label='Science', color = "purple", marker="*")
plt.xlabel("Student", fontsize=12)
plt.ylabel("Marks", fontsize=12)
plt.title("Subject Wise Marks of Students", fontsize=16)
plt.legend()
plt.show()
elif ch == 2:
x_values = df["name"]
y_values = df['marks']
plt.bar(x_values, y_values, color = 'orange')
plt.xlabel("Students", fontsize=12)
plt.ylabel("Marks", fontsize=12)
plt.title("Students - Marks Visualisation", fontsize=14)
plt.show()
elif ch == 3:
x_values = df["name"]
y_values = df["class"]
plt.barh(x_values, y_values, color = 'magenta')
plt.xlabel("Students", fontsize=12)
plt.ylabel("Class", fontsize=12)
plt.title("Students - Class Visualisation", fontsize=16)
plt.show()
elif ch == 4:
print("Returning to main menu")
break
else:
print("Wrong Option Selected! ")
elif ch == 4:
# Export Dataframe to csv file
file = input("File name: ")
df.to_csv(file, index = False)
elif ch == 5:
# Exit
print("Bye ...")
exit()
else:
# Error Display and Exit
print("Error! Wrong option selected. ")
break
output screen
BIBLIOGRAPHY
1.Informatics Practices By-Sumit Arora
2.Informatics Practices With Python By-Preeti Arora
3.Class Notes