Project Documentation
Project Documentation
TREND ANALYSIS
SYSTEM
1|Page
ACKNOWLEGEMENT
I would like to express my special thanks to my
teacher
Mr. Arbind Kumar Jha
And our respected principal
Mr. S. Karan
Who gave the golden opportunity to do this
wonderful project on the topic:
STUDENT RESULT TREND ANALYSIS
SYSTEM
Which helped me in doing a lot of research and also
helped me in gaining immense knowledge and
inspired me in learning a lot of things.
Also to the parents and friends who played and
undeniable role in completion of this project within
the limited time frame, I express my gratitude.
2|Page
CERTIFICATE
12641050
CBSE Roll Number
______________ ______________
External Examiner Subject
Teacher
(Arbind Kumar Jha)
________________
3|Page
Principal (S. Karan)
4|Page
new exams takes place we can add the result through excel and its
result can also be included in the analysis.
5|Page
DATA FLOW DIAGRAM
6|Page
REQUIREMENT ANALYSIS
7|Page
DATABASE STRUCTURE
TABLE MT1:-
Sl No Name ENGLISH PHYSICS CHEMISTRY CSC MATHS BIOTECH
1 ABHIGYAN MONDAL 75 46 50 46 67
2 ABHIJIT YADAV NULL 23 36 23 26
3 ABHISHEK KUMAR
MANDAL 63 43 42 32 48
4 AISHASHREE GIRI 73 62 63 63 80
5 ANIKET T MAIRAL 71 54 52 60 63
6 ANTARA NASKAR 67 57 60 71 56
7 ANUROJ THAKUR 68 44 47 40 56
8 ARAKTIM SARKAR 57 32 15 48 26
9 ARKA BISWAS 62 23 33 33 18
10 ARPITA DAS 68 56 52 40 73
11 AYSHIKA RAKSHIT 49 49 37 28 33
12 BAIBHAB CHAND 77 59 58 78 59
13 BISHAKHA
BANDYOPADHYAY 57 8 23 35 18
14 DEBASIS PAL 73 42 46 38 61
15 DEBDATTA GHOSH 74 44 41 43 28
16 DEBLEENA ROUT 58 48 43 15 47
17 DIVYA KUMARI 72 40 51 50 65
18 IRIN DAS 67 46 60 46 70
19 JAYA MISHRA 72 55 52 65 72
20 KATHA GUPTA 68 0 24 32 57
21 KHUSHI KUMARI 72 19 30 16 15
22 LIPI BARDHAN 66 28 36 30 42
23 MANDIRA DEY
SARKAR 66 23 36 33 43
24 MANOSHI GHOSH 72 29 42 46 47
25 MASUDA SAMIHA 76 17 25 20 36
26 MAYANK VISHESH 74 19 32 43 48
8|Page
27 MD FAISAL ANSARI 43 32 23 35 37
28 MOHAMMAD RAJA
KHAN 49 38 49 39 50
29 NICE MARY PRADEEP 62 35 41 55 50
30 PIYUSH KUMAR
SINGH 64 23 26 23 50
31 PRIYANJALI SINGH 63 40 41 61 43
32 PRIYANGSHU
BHOWMIK 44 12 16 32 27
33 RITUPARNA HALDAR 62 18 19 13 20
34 SARUPYA DATTA 71 23 41 42 59
35 SAYAK MAHATO 61 37 45 35 54
36 SAYANI DEY 62 25 23 45
37 SHREYA MANDAL 64 36 35 53 54
TABLE MT2:-
Sl No Name ENGLISH PHYSICS CHEMISTRY CSC MATHS BIOTECH
1 ABHIGYAN MONDAL 72 53 42 38 74
2 ABHIJIT YADAV 19 23 28 27
3 ABHISHEK KUMAR
MANDAL 60 51 34 29 36
4 AISHASHREE GIRI 77 67 67 58 78
5 ANIKET T MAIRAL 72 59 41 66 53
6 ANTARA NASKAR 73 56 51 78 58
7 ANUROJ THAKUR 65 47 45 35 63
8 ARAKTIM SARKAR 55 41 17 55 11
9 ARKA BISWAS 58 24 27 37 36
10 ARPITA DAS 68 54 54 49 75
11 AYSHIKA RAKSHIT 28 23 35 17 10
12 BAIBHAB CHAND 75 65 59 77 54
13 BISHAKHA
BANDYOPADHYAY 63 24 24 10 33
14 DEBASIS PAL 75 46 43 53 47
15 DEBDATTA GHOSH 71 48 34 36 43
16 DEBLEENA ROUT 61 55 27 38 50
17 DIVYA KUMARI 74 38 47 48 70
18 IRIN DAS 69 64 49 46 65
19 JAYA MISHRA 69 47 47 56 60
20 KATHA GUPTA 65 38 23 42 36
21 KHUSHI KUMARI 71 23 24 24 50
22 LIPI BARDHAN 73 42 23 35 51
23 MANDIRA DEY
SARKAR 69 45 36 20 33
24 MANOSHI GHOSH 71 40 33 34 68
25 MASUDA SAMIHA 69 31 32 25 12
26 MAYANK VISHESH 58 29 30 35 44
9|Page
27 MD FAISAL ANSARI 42 32 39 34 36
28 MOHAMMAD RAJA
KHAN 35 31 24 35 34
29 NICE MARY PRADEEP 51 43 35 60 52
30 PIYUSH KUMAR
SINGH 67 63 25 25 77
31 PRIYANJALI SINGH 65 43 30 50 42
32 PRIYANGSHU
BHOWMIK 60 47 23 17 18
33 RITUPARNA HALDAR 60 29 11 7 7
34 SARUPYA DATTA 70 32 38 50 52
35 SAYAK MAHATO 67 48 51 40 47
36 SAYANI DEY 62 28 23 27 33
37 SHREYA MANDAL 65 44 33 56 66
TABLE MT3:-
Sl No Name ENGLISH PHYSICS CHEMISTRY CSC MATHS BIOTECH
1 ABHIGYAN MONDAL 68 46 47 41 80
2 ABHIJIT YADAV 69 43 8 27 27
3 ABHISHEK KUMAR
MANDAL 56 49 32 18 55
4 AISHASHREE GIRI 77 67 61 49 80
5 ANIKET T MAIRAL 68 59 51 77 61
6 ANTARA NASKAR 69 56 50 77 55
7 ANUROJ THAKUR 70 53 47 40 70
8 ARAKTIM SARKAR 49 31 16 45 40
9 ARKA BISWAS 58 20 25 29 40
10 ARPITA DAS 67 55 43 46 80
11 AYSHIKA RAKSHIT 46 54 28 23 61
12 BAIBHAB CHAND 71 59 59 78 60
13 BISHAKHA
BANDYOPADHYAY 60 30 23 6 56
14 DEBASIS PAL 74 53 27 30 74
15 DEBDATTA GHOSH 70 60 34 26 63
16 DEBLEENA ROUT 51 59 14 29 72
17 DIVYA KUMARI 72 55 34 43 76
18 IRIN DAS 64 58 38 45 65
19 JAYA MISHRA 71 57 54 52 78
20 KATHA GUPTA 63 45 23 53 68
21 KHUSHI KUMARI 65 25 10 26 27
22 LIPI BARDHAN 69 34 16 23 46
23 MANDIRA DEY
SARKAR 48 62 23 25 63
24 MANOSHI GHOSH 73 40 29 34 67
25 MASUDA SAMIHA 76 36 24 33 58
10 | P a g e
26 MAYANK VISHESH 67 37 23 44 52
27 MD FAISAL ANSARI 41 29 23 26 41
28 MOHAMMAD RAJA
KHAN 52 47 29 40 34
29 NICE MARY PRADEEP 51 29 27 51 48
30 PIYUSH KUMAR SINGH 74 46 30 34 70
31 PRIYANJALI SINGH 59 44 23 75 49
32 PRIYANGSHU
BHOWMIK 56 37 14 47 25
33 RITUPARNA HALDAR 64 37 14 20 44
34 SARUPYA DATTA 69 43 35 77 50
35 SAYAK MAHATO 66 48 40 35 72
36 SAYANI DEY 65 32 30 70 28
37 SHREYA MANDAL 62 51 37 41 75
TABLE MT4:-
Sl No Name ENGLISH PHYSICS CHEMISTRY CSC MATHS BIOTECH
1 ABHIGYAN MONDAL 74 47 41 58 78
2 ABHIJIT YADAV 65 17 24 34 26
3 ABHISHEK KUMAR
MANDAL 62 46 28 38 70
4 AISHASHREE GIRI 75 66 65 54 79
5 ANIKET T MAIRAL 71 51 61 79 62
6 ANTARA NASKAR 68 46 35 73 52
7 ANUROJ THAKUR 69 44 54 48 66
8 ARAKTIM SARKAR 68 23 19 43 40
9 ARKA BISWAS 53 25 23 45 27
10 ARPITA DAS 74 54 59 36 78
11 AYSHIKA RAKSHIT 43 35 15 14 28
12 BAIBHAB CHAND 77 64 58 78 60
13 BISHAKHA
BANDYOPADHYAY 66 26 25 26 57
14 DEBASIS PAL 75 46 39 32 68
15 DEBDATTA GHOSH 71 38 31 32 57
16 DEBLEENA ROUT 51 50 35 42 73
17 DIVYA KUMARI 77 45 54 43 74
18 IRIN DAS 64 48 38 54 52
19 JAYA MISHRA 72 63 59 52 77
20 KATHA GUPTA 67 32 23 37 63
21 KHUSHI KUMARI 61 20 12 22 26
22 LIPI BARDHAN 69 30 23 37 58
23 MANDIRA DEY SARKAR 56 46 28 38 57
24 MANOSHI GHOSH 65 41 30 33 45
25 MASUDA SAMIHA 72 40 25 35 47
11 | P a g e
26 MAYANK VISHESH 63 31 23 28 42
27 MD FAISAL ANSARI 41 26 25 44 56
28 MOHAMMAD RAJA
KHAN 34 30 44 56
29 NICE MARY PRADEEP 41 29 18 27 46
30 PIYUSH KUMAR SINGH 69 41 25 30 72
31 PRIYANJALI SINGH 57 30 26 64 41
32 PRIYANGSHU
BHOWMIK 53 31 15 63 17
33 RITUPARNA HALDAR 56 30 5 23 36
34 SARUPYA DATTA 62 44 40 68 52
35 SAYAK MAHATO 67 40 45 49 70
36 SAYANI DEY 27 23 61 47
37 SHREYA MANDAL 66 31 32 55 72
TABLE PB1:-
Sl No Name ENGLISH PHYSICS CHEMISTRY CSC MATHS BIOTECH
1 ABHIGYAN MONDAL 73 43 43 54 77
2 ABHIJIT YADAV 65 13 19 50 30
3 ABHISHEK KUMAR
MANDAL 47 31 23 51 60
4 AISHASHREE GIRI 72 66 65 63 78
5 ANIKET T MAIRAL 70 53 56 74 49
6 ANTARA NASKAR 72 48 40 72 53
7 ANUROJ THAKUR 64 40 42 59 58
8 ARAKTIM SARKAR 50 28 23 56 32
9 ARKA BISWAS 42 28 23 49 28
10 ARPITA DAS 60 48 46 46 76
11 AYSHIKA RAKSHIT 44 24 23 33 29
12 BAIBHAB CHAND 68 62 55 77 53
13 BISHAKHA
BANDYOPADHYAY 48 23 24 35 32
14 DEBASIS PAL 69 26 38 54 40
15 DEBDATTA GHOSH 68 41 28 43 43
16 DEBLEENA ROUT 41 46 30 50 55
17 DIVYA KUMARI 71 38 41 44 60
18 IRIN DAS 57 41 35 57 48
19 JAYA MISHRA 70 50 56 63 73
20 KATHA GUPTA 62 27 30 48 40
21 KHUSHI KUMARI 66 23 25 25 26
22 LIPI BARDHAN 63 28 32 43 37
23 MANDIRA DEY SARKAR 54 26 23 43 51
24 MANOSHI GHOSH 69 29 25 52 42
25 MASUDA SAMIHA 71 34 23 49 50
26 MAYANK VISHESH 61 31 29 42 44
12 | P a g e
27 MD FAISAL ANSARI 42 29 27 37 43
28 MOHAMMAD RAJA
KHAN 54 29 23 43 48
29 NICE MARY PRADEEP 44 11 8 51 48
30 PIYUSH KUMAR SINGH 62 32 26 36 56
31 PRIYANJALI SINGH 59 36 26 48 41
32 PRIYANGSHU
BHOWMIK 51 23 23 33 23
33 RITUPARNA HALDAR 55 24 23 25 26
34 SARUPYA DATTA 65 33 36 48 48
35 SAYAK MAHATO 67 35 31 38 50
36 SAYANI DEY 63 20 19 33 39
37 SHREYA MANDAL 69 50 31 52 62
OUTPUT ANALYSIS
In the 1st screenshot, the teacher will be asked to choose from the following options shown above.
Then accordingly they will get the results. Some examples are given below :-
13 | P a g e
After choosing option 1 and entering the exam name, we got the name of the students who failed in
that exam and the output obtained is shown above in the 2nd screenshot.
14 | P a g e
When we chose option 2,the following output in obtained(shown in 3 rd & 4th screenshot) which
shows a combined list of the students who failed in any one of the exams.
When we chose option 4 and entered the exam name followed by a cut off percentage the following
output is obtained(as shown in 5th screenshot). Similarly according to the chosen option output will
be shown.
15 | P a g e
In this 6th and 7th screenshot average of all the subjects is shown(a combined average of MT1, MT2,
MT3, MT4).
16 | P a g e
In this 8th screenshot the decreasing trend of physics is shown by the comparison of the average
marks of MT1&2 to that of MT3&4.
In this 9th screenshot the decreasing trend of chemistry is shown by the comparison of the average
marks of MT1&2 to that of MT3&4.
17 | P a g e
In this 10th screenshot combined result of decreasing trend of physics and chemistry is shown.
In this 11th screenshot the students whose trend is worst in chemistry by comparison of average
marks in MT1-2 and MT3-4 .
18 | P a g e
In this 12th screenshot PB1 data is considered and compared against the trend of physics and
chemistry .
In this 13th screenshot a graph is plotted for the average marks scored in all the subjects upto MT4.
19 | P a g e
In this 14th screenshot we co-related all the subjects and found relation between physics and
chemistry .
In this 14th screenshot a graph is potted for a student and his/her marks for a particular subject is
compared against that subject’s average marks
20 | P a g e
In this 15th screenshot a graph is plotted showing co-relation of physics and chemistry.
PROGRAM CODE
MAIN PROGRAM
import pandas as pd
import numpy as np
MT2 = pd.read_csv("filesforproject1/mt2.csv")
MT3 = pd.read_csv("filesforproject1/mt3.csv")
MT4 = pd.read_csv("filesforproject1/mt4.csv")
PB1 = pd.read_csv("filesforproject1/PB1.csv")
21 | P a g e
mt2_marks = MT2.loc[:,'ENGLISH':]
mt3_marks = MT3.loc[:,'ENGLISH':]
mt4_marks = MT4.loc[:,'ENGLISH':]
pb1_marks = PB1.loc[:,'ENGLISH':]
PASS_RESULTS = []
global PASS_RESULTS
global FAIL_RESULTS
global term_marks
F_MARKS = []
for i in range(5):
temp_marks = []
k=0
if i==0:
TEST = MT1
MRKS = mt1_marks
elif i==1:
TEST = MT2
MRKS = mt2_marks
elif i==2:
22 | P a g e
TEST = MT3
MRKS = mt3_marks
elif i==3:
TEST = MT4
MRKS = mt4_marks
else:
TEST = PB1
MRKS = pb1_marks
for j in range(6):
if j == 0 or j == 4:
else:
global PASS_RESULTS
global FAIL_RESULTS
global term_marks
testName = input('Enter test name to get the list of failed students : ')
23 | P a g e
MRKS = mt1_marks
MRKS = mt2_marks
MRKS = mt3_marks
MRKS = mt4_marks
MRKS = pb1_marks
for i in range(6):
if i == 0 or i == 4:
else:
24 | P a g e
TEST = TEST.loc[:, ~TEST.columns.str.contains('Unnamed')]
x = pd.merge(x,FAIL_RESULTS[2],on=['Name','Sl No'])
x = pd.merge(x,FAIL_RESULTS[3],on=['Name','Sl No'])
x = pd.merge(x,FAIL_RESULTS[4],on=['Name','Sl No'])
fail_list =
pd.concat([FAIL_RESULTS[0],FAIL_RESULTS[1],FAIL_RESULTS[2],FAIL_RESULTS[3],FAIL_RESULTS[4]],s
ort=True)
NAMES = set(fail_list.Name)
#print('\n\n\n',FAIL_RESULTS) #can be accessed from here... but not from other functions
25 | P a g e
#FUNCTION TO DISPLAY LIST OF STUDENTS WHO PASSED IN EXAMS BY NAME
OF EXAM
def showPass():
global PASS_RESULTS
global FAIL_RESULTS
global term_marks
testName = input('Enter test name to get the list of passed students : ')
MRKS = mt1_marks
MRKS = mt2_marks
MRKS = mt3_marks
MRKS = mt4_marks
MRKS = pb1_marks
26 | P a g e
print("\n\nList of failed students in PB1:-\n")
for i in range(6):
if i == 0 or i == 4:
else:
#TEST['Percentage'] = ((TEST.loc[:,'ENGLISH':].sum(axis=1))/370)*100
global PASS_RESULTS
global FAIL_RESULTS
global term_marks
27 | P a g e
if testName == 'mt2' or testName == 'MT2' or testName == 'Mt2' or testName == 'mT2':
global PASS_RESULTS
global FAIL_RESULTS
global term_marks
xm = input("Enter the exam name you're searching the record for (type ALL for all the exams): ")
28 | P a g e
MT2['Percentage'] = (MT2['Total Marks']/370)*100
29 | P a g e
elif xm == 'ALL' or xm == 'all' or xm == 'All':
global PASS_RESULTS
global FAIL_RESULTS
global term_marks
mt1_percent = ((MT1.loc[:,'ENGLISH':].sum(axis=1))/370)*100
mt2_percent = ((MT2.loc[:,'ENGLISH':].sum(axis=1))/370)*100
mt3_percent = ((MT3.loc[:,'ENGLISH':].sum(axis=1))/370)*100
mt4_percent = ((MT4.loc[:,'ENGLISH':].sum(axis=1))/370)*100
pb1_percent = ((PB1.loc[:,'ENGLISH':].sum(axis=1))/370)*100
mt1_cnt = mt1_marks.count(axis=1)
mt2_cnt = mt2_marks.count(axis=1)
mt3_cnt = mt3_marks.count(axis=1)
mt4_cnt = mt4_marks.count(axis=1)
pb1_cnt = pb1_marks.count(axis=1)
#trend1 = np.where( ((mt1_cnt == 5) & (mt2_cnt == 5)) & (mt1_percent <= mt2_percent),
'Improved', 'Deteriorated')
trend1 = np.where( ((mt1_cnt == 5) & (mt2_cnt == 5)) & ( ( mt1_percent - mt2_percent ) >
mt1_percent*0.2), 'Deteriorated', 'Consistent')
30 | P a g e
MT2['Trend'] = trend1
trend2 = np.where( ((mt2_cnt == 5) & (mt3_cnt == 5)) & ( ( mt2_percent - mt3_percent ) >
mt2_percent*0.2), 'Deteriorated', 'Consistent')
MT3['Trend'] = trend2
trend3 = np.where( ((mt3_cnt == 5) & (mt4_cnt == 5)) & ( ( mt3_percent - mt4_percent ) >
mt3_percent*0.2), 'Deteriorated', 'Consistent')
MT4['Trend'] = trend3
trend4 = np.where( ((mt4_cnt == 5) & (pb1_cnt == 5)) & ( ( mt4_percent - pb1_percent ) >
mt4_percent*0.2), 'Deteriorated', 'Consistent')
PB1['Trend'] = trend4
# checking recent treend (up or down) based on the performance of last 3 exams [last
two curves]
#trending = np.where( (mt2_percent <= mt3_percent) & (mt3_percent <= mt4_percent) &
(mt4_percent <= pb1_percent), 'Improving', 'Deteriorating')
#print(MT2)
if Choice == 1:
print('\n\n',MT1.loc[MT1.Name.str.contains(Search,case=False),['Sl No','Name']],'\n\n')
31 | P a g e
elif Choice == 2:
return MT2
return MT3
return MT4
return PB1
else:
else:
else:
print('Which trend do you want to search?\n (1) By student name (for all exams) \n (2) By exam
name (for all students)\n (3) All students whose performances are in a particular trend (UP or
DOWN)')
32 | P a g e
if searchBY == 1:
x = getTrend(searchBY, stName)
elif searchBY == 2:
xm = input("Enter the exam name you're searching the record for: ")
x = getTrend(searchBY, xm)
elif searchBY == 3:
trnd = input("Enter which trend you're filtering the students on (UP or DOWN): ")
x = getTrend(searchBY, trnd)
else:
print('Invalid choice!')
print(x)
print('You can choose among various options to check for results, trends and particular student
details.\n\n')
print('\n(1) Show records of students who failed in the exam by name of the examination.')
print('\n(2) Show names of all students who failed in either of the 5 exams.')
print('\n(3) Show records of students who passed in the exam by name of the examination.')
print('\n(4) Show records of students who scored more than a certain percentage by name of the
exam.')
print('\n(5) Show record of a particular student searched by name [either by name of name of
particular exam or all exams].')
print('\n(6) Show trends [UP or DOWN] of a particular student for all exams, or for a particular exam
for all students.\n')
if iniCoice == 1:
showFail()
33 | P a g e
calcPassFail()
elif iniCoice == 2:
showAllFail()
calcPassFail()
elif iniCoice == 3:
showPass()
calcPassFail()
elif iniCoice == 4:
showPercent()
calcPassFail()
elif iniCoice == 5:
nameSearch()
calcPassFail()
elif iniCoice == 6:
showTrend()
calcPassFail()
else:
CALCULATIONS
#read data into data frame and calculate average of all subjects for all
students
mt1 = pd.read_csv("filesforproject1/mt1.csv")
mt2 = pd.read_csv("filesforproject1/mt2.csv")
mt3 = pd.read_csv("filesforproject1/mt3.csv")
mt4 = pd.read_csv("filesforproject1/mt4.csv")
PB1 = pd.read_csv("filesforproject1/PB1.csv")
34 | P a g e
result=mt1.loc[:,['ENGLISH','PHYSICS','CHEMISTRY','CSC','MATH','BIOTECH']]+mt2.loc[:,
['ENGLISH','PHYSICS','CHEMISTRY ','CSC','MATH','BIOTECH']]+\ mt3.loc[:,
['ENGLISH','PHYSICS','CHEMISTRY ','CSC','MATH','BIOTECH']]+mt4.loc[:,
['ENGLISH','PHYSICS','CHEMISTRY ','CSC','MATH','BIOTECH']]
result=result/4
result['name']=mt1.iloc[:,1]
result
df_chem['Chem-MT1'],df_chem['Chem-MT2'],df_chem['Chem-MT3'],df_chem['Chem-
MT4']=mt1['CHEMISTRY '],mt2['CHEMISTRY '],mt3['CHEMISTRY '],mt4['CHEMISTRY ']
df_chem['MT1-2_avg']=df_chem.loc[:,'Chem-MT1']+df_chem.loc[:,'Chem-MT2']
df_chem['MT3-4_avg']=df_chem.loc[:,'Chem-MT3']+df_chem.loc[:,'Chem-MT4']
df_chem['Name']=mt1['Name']
chem_decresing_trend=df_chem[df_chem['MT3-4_avg']<df_chem['MT1-2_avg']]
chem_decresing_trend
df_physics['Phy-MT1'],df_physics['Phy-MT2'],df_physics['Phy-MT3'],df_physics['Phy-
MT4']=mt1['PHYSICS'],mt2['PHYSICS'],mt3['PHYSICS'],mt4['PHYSICS']
df_physics['MT1-2_avg']=df_physics.loc[:,'Phy-MT1']+df_physics.loc[:,'Phy-MT2']
df_physics['MT3-4_avg']=df_physics.loc[:,'Phy-MT3']+df_physics.loc[:,'Phy-MT4']
df_physics['Name']=mt1['Name']
physics_decresing_trend=df_physics[df_physics['MT3-4_avg']<df_physics['MT1-2_avg']]
physics_decresing_trend
print(list(c_name))
for i in list(c_name):
35 | P a g e
print(chem_decresing_trend[chem_decresing_trend['Name']==i ].T)
print(physics_decresing_trend[physics_decresing_trend['Name']==i ].T)
chem_decresing_trend['change_in_average_per']=(((chem_decresing_trend['MT3-4_avg']-
chem_decresing_trend['MT1-2_avg'])/chem_decresing_trend['MT1-2_avg'])*100)
#var_more_5_per_chem
chem_decresing_trend.sort_values(by='change_in_average_per')
#now lets read PB1 data and compare the result against trend of chemistry
and physics
pb = pd.read_csv("filesforproject1/PB1.csv")
pb=pb.filter(['Name','ENGLISH','PHYSICS','CHEMISTRY ','CSC','MATH','BIOTECH'],axis=1)
#print(pb)
chem_name=chem_decresing_trend.sort_values(by='change_in_average_per').head(8) # top 5
downward trend in chem
for i in list(chem_name['Name']):
print(pb[pb['Name']==i ].T)
eng_mean=result['ENGLISH'].mean()
phy_mean=result['PHYSICS'].mean()
chem_mean=result['CHEMISTRY '].mean()
csc_math=result['CSC'].mean()
math_mean=result['MATH'].mean()
#print(eng_mean)
plt.bar(['eng_mean','phy_mean','chem_mean','csc_math','math_mean'],
[eng_mean,phy_mean,chem_mean,csc_math,math_mean], \
36 | P a g e
color=['red','blue','green','black','brown'])
plt.ylabel('MARKS')
plt.xlabel('SUBJECT')
plt.show
x=x[0:5]
print(x)
#plotting graph for a student and comparing it against the average marks
s1E=result[:1]['ENGLISH']
s1P=result[:1]['PHYSICS']
s1C=result[:1]['CHEMISTRY']
s1CSC=result[:1]['CSC']
s1m=result[:1]['MATH']
s1Name=result[:1]['name']
s1_rec=[s1E,s1P,s1C,s1CSC,s1m]
plt.bar(['s1Name','eng_mean'],[s1E,eng_mean])
print(s1Name)
#plt.matshow(result.corr())
result.iloc[:,1:3].plot(figsize=(20,10))
37 | P a g e
LIMITATIONS AND FUTURE PROSPECTS
38 | P a g e
The program is not able
to deal with different By creating different tables for different streams,analysis for each stream can be done or such a input can be created that a teacher can input the subjects and the program will consider it itself.So that for every class this program will work.
streams in higher
secondary sections.
This program is limited to only one class.And futhur analysis can be done like a student's overall percentage graph in all the exams can be drawn,etc. Futher more development can be done to this program for a more detailed analysis of a student .
FUTURE
LIMITATIONS
PROSPECTS
39 | P a g e
BIBLIOGRAPHY
The sources of information of this project are
firstly our teacher incharge’s(Mr. A.K.Jha)
guidance and help, then the following teacher’s
help:
1.Our exam department ma’am (Mrs. Pratima
Mandal) who helped us in gathering all the
information.
2.Our school principal sir(Mr. S. Karan) who
gave us this opportunity to do this project
Lastly self interpretation of the topic and then
conduction of it.
40 | P a g e