Ip Project Class 12
Ip Project Class 12
Ip Project Class 12
SNO CONTENTS
1 PROJECT SYNOPSIS
2 CODE
3 OUTPUT
PROJECT
SYNOPSIS
REASON FOR CHOOSING THE PROJECT
What is Python?
Python was conceived in the late 1980s by Guido van
Rossum at Centrum Wiskunde &Informatica
(CVVI) in the Netherlands as a successor to ABC
programming language, which was inspired by SETL.
Introduction to Matplotlib
Matplotlib is a plotting library for the Python
programming language and its numerical
mathematics extension NumPy. It provides an
object-oriented API for embedding plots into
applications using general-purpose GUI toolkits like
Tkinter. wxPython, Qt, or GTK. There is also a
procedural "pylab" interface based on a
state machine (like OpenGL), designed to closely
resemble that of MATLAB, though its use is
discouraged.
Matplotlib was originally written by John D. Hunter.
Since then, it has an active development
community and is distributed under a BSD-style
license
Introduction to Pandas
Pandas is an open-source library that is made
mainly for working with relational or labeled data
both easily and intuitively. It provides various data
structures and operations for manipulating
numerical data and time series.
This library is built on top of the NumPy library.
Pandas is fast and it has high performance &
productivity for users. Pandas were initially
developed by Wes McKinney in 2008 while he was
working at AQR Capital Management. He
convinced the AQR to allow him to open source the
Pandas. Another AQR employee, Chang She,
joined as the second major contributor to the library
in 2012.
Introduction to numpy
Numpy is an open-source library for effectively
using arrays. Numpy stands for Numerical Python,
was developed by Travis Oliphant in 2005.
Numerous other libraries in Python rely on it as a
critical data science library. It is extremely popular
since it makes working with multidimensional
arrays much easier and faster.
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','m
arks']
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