You are on page 1of 32

Student Result Analysis

Project Topic

Student Result Analysis


For SSSExamination2023
[As a part of the Informatics Practices Course
(065)]

M.P.S. School
Jawahar Nagar, Jaipur

Submitted to: Submitted by:


Mrs. RituSareen Shubham
PGT IP School RNo:12354
Board RNo:

MPS Jawahar Nagar Page 1


Student Result Analysis

CERTIFICATE
This is to certify that the Project / Dissertation entitled
“STUDENT RESULT ANALYSIS” is a Bonafede work done by
Shubham Choudhary of class Xll Session 2022-23in partial
fulfillment of CBSE's SSSExamination2022-23 and has been
carried out under my direct supervision and guidance.

This report or a similar report on the topic has not been


submitted for any other examination and does not form a part
of any other course undergone by the candidate

_____________ _____________
Signature of Signature of
External Teacher

MPS Jawahar Nagar Page 2


Student Result Analysis

ACKNOWLEDGEMENT
We undertook this Project work, as the part of our Xll-
lnformatics Practices Course. We had tried to apply our best of
knowledge and experience, gained during the study and
pandemic experience.
However, developing software system is generally a quite
complex and timeconsuming process. It requires a systematic
study, insight vision and professional approach during the
design and development. Moreover, the developer always feels
the need, the help and good wishes of the people near you,
who have considerable experience and idea.

We would like to extend our sincere thanks and gratitude to


our teacher Ritu ma'am, for her intense concern, attention,
priceless direction, guidance and encouragement throughout
this project work.
We are very much thankful to our Principal Mr. Ashok Vaid for
giving valuable time and moral support to develop this
software.
We would like to take the opportunity to extend our sincere
thanks and gratitude to our parents for being a source of
inspiration and providing time and freedom to develop this
software project.

Shubham Choudhary
(12354)

MPS Jawahar Nagar Page 3


Student Result Analysis

TABLE OF CONTENTS
Heading Title Page No
1. Introduction 5
2. Objective 6
3. Working 6
4. Theoretical Background 7-11
4.1CSV File 7
4.2Pandas 8
4.3Data Structure 9
4.4Matplotlib 10
4.5Graphs 11
5. System Implementation 12
5.1 Hardware Requirement 12
5.2 Software Requirement 12
6. System Design and Development 13
7. Source Code 15
8. Output 20-25
8.1Fetch Data 20
8.2Data Frame Statistics 20
8.3Display Records 22

MPS Jawahar Nagar Page 4


Student Result Analysis

8.4Working on Rows 23
8.5Working on Columns 23
8.6Search Specific row/column 24
8.7Data Analytics 24
8.8Graph 25
9. References 28

1. INTRODUCTION

To assist in finding the marks and results of students by user according


to their needs, Student Analysis Systems have been developed.

In order to help user, discover the required data of the students for
their needs, it provides all the information about the student’s result,
appearance and marks of every subject. The program uses a CSV file
containing all of these data, which can be modified if necessary. The
program filters the CSV file in accordance with the user's input to
display the results that are most appropriate.

Thus, this technology automates the user's comparison and search for
the specified data of student since, rather than going through every
student result, they can just filter it by the use of python.

MPS Jawahar Nagar Page 5


Student Result Analysis

2. OBJECTIVE
Our project introduces the computer comparison system with the
objective to analyze the result of all students by providing all the
necessary information. This project explores how computer technology
can be used to solve the problem of user. The main objectives provided
by this software are as follows:

a) To show result of all students.


b) To modify the information related to
c) To show graphical representation

MPS Jawahar Nagar Page 6


Student Result Analysis

3. WORKING
We have taken a csv file results which contains the data of 200
Students. With python pandas program and data from CSV files we
have completed this project.

4. THEORETICAL BACKGROUND
4.1 CSV file:

4.1.1 What-is CW file?


A CSV is a comma-separated values file, which allows data to be saved
in a tabular format. CSVs look like a garden-variety spreadsheet but
with a .csv extension.

MPS Jawahar Nagar Page 7


Student Result Analysis

CSV files can be used with most any spreadsheet program, such as
Microsoft Excel or Google Spreadsheets. They differ from other
spreadsheet file types because you can only have a single sheet in a file,
they cannot save cell, column, or row. Also, you cannot save formulas
in this format.

4.1.2 Why are CSV files used?


These files serve a number of different business purposes. They help
companies export a high volume of data to a more concentrated
database, for instance.

They also serve two other primary business functions:


a) CSV files are plain-text files, making them easier for the website
developer to create.Since they're plain text, they're easier to import
into a spreadsheet or another storage database, regardless of the
specific software you're using
b) To better organize large amounts of data

4.2 Pandas

4.2.1 What is Pandas in Python?

MPS Jawahar Nagar Page 8


Student Result Analysis

Pandas is an open source Python package that is most widely used for
data science/data analysis and machine learning tasks. It is built on top
of another package named Numpy, which provides support for multi-
dimensional arrays. As one of the most popular data wrangling
packages, Pandas works well with many other data science modules
inside the Python ecosystem, and is typically included in every Python
distribution, from those that come with your operating system to
commercial vendor distributions like Active Python.

4.2.2 What Can You Do With DataFrames Using


Pandas?
Pandas makes it simple to do many of the time consuming, repetitive
tasks associated with working with data, including:

 Data cleansing
 Data fill
 Data normalization
 Merges and joins
 Data visualization
 Statistical analysis Data inspection
 Loading and saving data
 And much more

MPS Jawahar Nagar Page 9


Student Result Analysis

4.3 Data Structure


Data structures are a way of storing and organizing data efficiently. This
will allow you to easily access and perform operations on the data.

There is no one-size-fits-all kind of model when it comes to data


structures. You will want to store data in different ways to cater to the
need of the hour. Maybe you want to store all types of data together,
or you want something for faster searching of data, or maybe
something that stores only distinct data items.

Luckily, Python has a host of in-built data structures that help us to


easily organize our data. Therefore, it becomes imperative to get
acquainted with these first so that when we are dealing with data, we
know exactly which data structure will solve our purpose effectively.

Some Data Structures are:

4.3.1 Lists in Python


Lists in Python are the most versatile data structure. They are used to
store heterogeneous data items, from integers to strings or even
another list! They are also mutable, which means that their elements
can be changed even after the list is created.

4.3.2 Tuples in Python

MPS Jawahar Nagar Page 10


Student Result Analysis

Tuples are another very popular in-built data structure in Python. These
are quite similar to Lists except for one difference — they are
immutable. This means that once a tuple is generated, no value can be
added, deleted, or edited.

4.3.3 Dictionary in Python


Dictionary is another Python data structure to store heterogeneous
objects that are immutable but unordered. This means that when you
try to access the elements, they might not be in exactly the order as the
one you inserted them in.

But what sets dictionaries apart from lists is the way elements are
stored in it. Elements in a dictionary are accessed via their key values
instead of their index, as we did in a list. So dictionaries contain key-
value pairs instead of just single elements.

4.4 Matplotlib
Matplotlib is a cross-platform, data visualization and graphical plotting
library for Python and its numerical extension NumPy. As such, it offers
a viable open source alternative to MAT LAB. Developers can also use
matplotlib's APIs (Application Programming Interfaces) to embed plots
in GUI applications.

MPS Jawahar Nagar Page 11


Student Result Analysis

A Python matplotlib script is structured so that a few lines of code are


all that is required in most instances to generate a visual data plot. The
matplotlib scripting layer overlays two APIs:

The pyplot API is a hierarchy of Python code objects topped by


matplotlib. pyplot An 00 (Object-Oriented) API collection of objects
that can be assembled with greater flexibility than pyplot. This API
provides direct access to Matplotlib's backend layers.

4.5 Graphs
This series will introduce you to graphing in python with Matplotlib,
which is arguably the most popular graphing and data visualization
library for Python.

MPS Jawahar Nagar Page 12


Student Result Analysis

5. SYSTEM IMPLEMENTATION

5.1 Hardware Requirement:


• Monitor
• Keyboard
• Mouse
• CPU

5.2 Software Requirement:

5.2.1 Basic requirements to run this project-

• Modern Operating System:


• X86 64-bit CPU (Intel / AMD architecture)
• 4 CIB RAM
• 5 GB free disk space

MPS Jawahar Nagar Page 13


Student Result Analysis

5.2.2 Basic library’s used in this project-


• Pandas to create Data Frame from CSV file .
• Numpy
• Matplotlib to create Graphs of data taken from CSV file

6. SYSTEM DESIGN AND DEVELOPMENT


1. Fetch Data.

2. Dataframe Statistics
a) Display the Transpose
b) Display all column names
c) Display the indexes
d) Display the shape
e) Display the dimension
f) Display the data types of all columns
g) Display the size

3. Display Records
a) Top 5 Records
b) Bottom 5 Records
MPS Jawahar Nagar Page 14
Student Result Analysis

c) Specific number of records from the top


d) Specific number of records from the bottom
e) Details of a specific Subject
f) Display details of all subjects
g) Exit

4. Working on Rows
a) Insert a specific subject Detail
b) Delete a specific subject Detail
c) Update a specific subject detail

5. Working on Columns
a) Insert a new column data
b) Delete a specific column

6. Search specific row/column


a) Search for the details of a specific subject
b) Search details of a specific as per a specific column heading

7. Data analytics
a) Subject with maximum average marks
b) Subject with minimum average marks
c) Subject with maximum highest marks
d) Subject with minimum highest marks
e) Subject with maximum percentage of Al and A2
f) Subject with minimum percentage of Al and A2

8. Graph
a) Line Graph
b) Bar Graph
c) Histo Graph
MPS Jawahar Nagar Page 15
Student Result Analysis

7. SOURCE CODE :
1.
2. #Importing statements
3. importpandasaspd
4. importnumpyasnp
5. importmatplotlib.pyplotasplt
6.
7. #Printing Menus
8. result=pd.read_csv('results.csv',index_col=0)
9. pd.set_option('display.max_rows',500)
10. pd.set_option('display.max_columns',500)
11. pd.set_option('display.width',1000)
12.
13. print(result)
14.
15. while(True):
16.     print("Main Menu")
17.     print("1. Fetch data")
18.     print("2. Dataframe Statistics")
19.     print("3. Display Records")
20.     print("4. Working on Records")
21.     print("5. Working on Columns")

MPS Jawahar Nagar Page 16


Student Result Analysis

22.     print("6. Search specific row/column")


23.     print("7. Data analystics")
24.     print("8. Graphs")
25.     print("9. Exit")
26.     ch=int(input("Enter your choice"))
27.     ifch==1:
28.         result=pd.read_csv("results.csv",index_col=0)
29.     elifch==2:
30.         while(True):
31.             print("Dataframe Statistics Menu")
32.             print("1. Display the Transpose")
33.             print("2. Display all column names")
34.             print("3. Display the indexes")
35.             print("4. Display the shape")
36.             print("5. Display the dimension")
37.             print("6. Display the data types of all columns")
38.             print("7. Display the size")
39.             print("8. Exit")
40.             ch2=int(input("Enter choice"))
41.             ifch2==1:
42.                 print(result.T)
43.             elifch2==2:
44.                 print(result.columns)
45.             elifch2==3:
46.                 print(result.index)
47.             elifch2==4:
48.                 print(result.shape)
49.             elifch2==5:
50.                 print(result.ndim)
51.             elifch2==6:
52.                 print(result.dtypes)
53.             elifch2==7:
54.                 print(result.size)
55.             elifch2==8:
56.                 break
57.
58.     elifch==3:
59.         while(True):
60.             print("Display Records Menu")
61.             print("1. Top 5 Records")
62.             print("2. Bottom 5 Records")
63.             print("3. Specific number of records from the top")
64.             print("4. Specific number of records from the bottom")
65.             print("5. Details of a specific Subject")
66.             print("6. Display details of all subjects")

MPS Jawahar Nagar Page 17


Student Result Analysis

67.             print("7. Exit")


68.             ch3=int(input("Enter choice"))
69.             ifch3==1:
70.                 print(result.head())
71.             elifch3==2:
72.                 print(result.tail())
73.             elifch3==3:
74.                 n=int(input("Enter how many records you want to
display from the top"))
75.                 print(result.head(n))
76.             elifch3==4:
77.                 n=int(input("Enter how many records you want to
display from the bottom"))
78.                 print(result.tail(n))
79.             elifch3==5:
80.                 st=input("Enter the subject name for which you want
to see the details")
81.                 print(result.loc[st])
82.             elifch3==6:
83.                 print("Results of XYZ school for the session 2018-
19")
84.                 print(result)
85.             elifch3==7:
86.                 break
87.            
88.     elifch==4:
89.         while(True):
90.             print("Working on Records Menu")
91.             print("1. Insert a specific subject Detail")
92.             print("2. Delete a specific subject Detail")
93.             print("3. Update a specific subject detail")
94.             print("4. Exit")
95.             ch4=int(input("Enter choice"))
96.             ifch4==1:
97.                 a=input("Enter subject name")
98.                 b=int(input("Enter number of students appeared:"))
99.                 c=int(input("Enter highest marks obtained:"))
100.                 d=int(input("Enter average marks obtained"))
101.                 e=int(input("Enter number of A1's"))
102.                 f=int(input("Enter number of A2's"))
103.                 g=int(input("Enter percentage of A1 and A2's"))
104.                 h=int(input("Enter number of B1's"))
105.                 i=int(input("Enter number of B2's"))
106.                 j=int(input("Enter number of C1's"))
107.                 k=int(input("Enter number of C2's"))

MPS Jawahar Nagar Page 18


Student Result Analysis

108.                 l=int(input("Enter number of D's"))


109.                 m=int(input("Enter number of E's"))
110.                 uman.loc[a]=[b,c,d,e,f,g,h,i,j,k,l,m]
111.                 print("Data successfully inserted")
112.             elifch4==2:
113.                 a=input("Enter subject name whose data needs to be
deleted")
114.                 human.drop([a],inplace=True)
115.                 print("Data successfully deleted")
116.             elifch4==3:
117.                 a=input("Enter subject name whose data needs to be
updated")
118.                 b=int(input("Enter number of students appeared:"))
119.                 c=int(input("Enter highest marks obtained:"))
120.                 d=int(input("Enter average marks obtained"))
121.                 e=int(input("Enter number of A1's"))
122.                 f=int(input("Enter number of A2's"))
123.                 g=int(input("Enter percentage of A1 and A2's"))
124.                 h=int(input("Enter number of B1's"))
125.                 i=int(input("Enter number of B2's"))
126.                 j=int(input("Enter number of C1's"))
127.                 k=int(input("Enter number of C2's"))
128.                 l=int(input("Enter number of D's"))
129.                 m=int(input("Enter number of E's"))
130.                 human.loc[a]=[b,c,d,e,f,g,h,i,j,k,l,m]
131.                 print("Data successfully updated")
132.             elifch4==4:
133.                 break
134.            
135.     elifch==5:
136.         while(True):
137.             print("Working on Columns Menu")
138.             print("1. Insert a new column data")
139.             print("2. Delete a specific column")
140.             print("3. Exit")
141.             ch5=int(input("Enter choice"))
142.             ifch5==1:
143.                 print("Enter details")
144.                 h=input("Enter column/heading name")
145.                 det=eval(input("Enter details corresponding to all
subject:(enclosed in [ ])"))
146.                 result[h]=pd.Series(data=det,index=result.index)
147.                 print("Column inserted")
148.             elifch5==2:

MPS Jawahar Nagar Page 19


Student Result Analysis

149.                 a=input("Enter column name which needs to be


deleted")
150.                 human.drop([a],axis=1,inplace=False)
151.                 print("Column Temporary deleted")
152.             elifch5==3:
153.                 break
154.            
155.     elifch==6:
156.         while(True):
157.             print("Search Menu")
158.             print("1. Search for the details of a specific subject")
159.             print("2. Search details of a specific as per a specific
column heading")
160.             print("3. Exit")
161.             ch6=int(input("Enter choice"))
162.             ifch6==1:
163.                  st=input("Enter the name of the subject whose
details you want to see")
164.                  print(result.loc[st])
165.             elifch6==2:
166.                 col=input("Enter column/heading name whose details
you want to see")
167.                 print(result[col])
168.             elifch6==3:
169.                 break
170.    
171.     elifch==7:
172.         while(True):
173.             print("Data Analytics Menu")
174.             print("1. Subject with maximum average marks")
175.             print("2. Subject with minimum average marks")
176.             print("3. Subject with maximum highest marks")
177.             print("4. Subject with minimum highest marks")
178.             print("5. Subject with maximum percentage of A1 and A2")
179.             print("6. Subject with minimum percentage of A1 and A2")
180.             print("7. Exit")
181.             chana=int(input("Enter choice:"))
182.             ifchana==1:
183.                 m=result['average'].max()
184.                 s=result.loc[result.average==m]
185.                 print("Subject with maximum average marks of ",m,"
is\n ",s.index)
186.             elifchana==2:
187.                 m=result['average'].min()
188.                 s=result.loc[result.average==m]

MPS Jawahar Nagar Page 20


Student Result Analysis

189.                 print("Subject with minimum average marks of ",m,"


is\n ",s.index)
190.             elifchana==3:
191.                 m=result['highest'].max()
192.                 s=result.loc[result.highest==m]
193.                 print("Subject with maximum highest marks of ",m,"
is\n ",s.index)
194.             elifchana==4:
195.                 m=result['highest'].min()
196.                 s=result.loc[result.highest==m]
197.                 print("Subject with minimum highest marks of ",m,"
is\n ",s.index)
198.             elifchana==5:
199.                 m=result['per'].max()
200.                 s=result.loc[result.per==m]
201.                 print("Subject with maximum percentage of A1 and
A2",s.index,"\n Percentag being",m)
202.             elifchana==6:
203.                 m=result['per'].min()
204.                 s=result.loc[result.per==m]
205.                 print("Subject with minimum percentage of A1 and
A2",s.index,"\n Percentage being",m)
206.             elifchana==7:
207.                 break
208.     elifch==8:
209.         break

MPS Jawahar Nagar Page 21


Student Result Analysis

8. OUTPUT:
8.1 Fetch Data

8.2 Data Frame Statistics


a) Display all column names

b) Display the indexes

MPS Jawahar Nagar Page 22


Student Result Analysis

c) Display the shape

d) Display the dimension

e) Display the data types of all columns

MPS Jawahar Nagar Page 23


Student Result Analysis

f) Display the size

8.3 Display Records


a) Top 5 Records

b) Bottom 5 Records

c) Specific number of records from the top

MPS Jawahar Nagar Page 24


Student Result Analysis

d) Details of a specific Subject

e) Display details of all subjects

MPS Jawahar Nagar Page 25


Student Result Analysis

8.4 Working on Rows

8.5 Working on Columns

8.6 Search specific row/ column


a) Search details of a specific as per specific
column heading
MPS Jawahar Nagar Page 26
Student Result Analysis

8.7 Data analytics


a) Subject with minimum average marks

b) Subject with minimum highest marks

c) Subject with minimum percentage of Al and A2

MPS Jawahar Nagar Page 27


Student Result Analysis

8.8 Graphs
a) Line Graph

MPS Jawahar Nagar Page 28


Student Result Analysis

MPS Jawahar Nagar Page 29


Student Result Analysis

b) Bar Graph

MPS Jawahar Nagar Page 30


Student Result Analysis

c) Histo Graph

MPS Jawahar Nagar Page 31


Student Result Analysis

9. BIBLIOGRAPHY

In order to work on this project, the following books and


literature are referred by us during the various phases of
development of the project:
o Informatices Practices by NCERT (Ml)
o Core Python Programming
o Activestate.com
o Analyticsvidhya.com
o Google.com
Other than the above-mentioned books, the suggestions and
supervision of my teacher and my class experience also helped
me to develop this software project.

MPS Jawahar Nagar Page 32

You might also like