Q. Write a program to iterate over a data-frame containing names and marks, which then calculates grades as per marks (as per guidelines below) and adds them to the grade column.



Marks >= 90 grade A+;
Marks 70-90 grade A;
Marks 68-70 grade B;
Marks 50-60 grade C;
Marks 40-50 grade D;
Marks < 40 grade F


Answer :-

import pandas as pd
import numpy as np
names = pd.Series (['Path', 'Walla', 'Computer', 'Portal', 'Express'])
marks = pd. Series ([61, 75.0, 95, 89, 73.6])
Stud = { 'Name': names, 'Marks': marks }
df1 = pd.DataFrame (Stud, columns = ['Name', 'Marks'])
df1['Grade'] = np.NaN
print ("Initial values in dataframe")
print (df1)

for (col, colSeries) in df1.iteritems():
    length = len(colSeries)
    if col == 'Marks':
        lstMrks = []
        for row in range (length) :
            mrks = colSeries [row]
            if mrks >= 90 :
                lstMrks.append('A+')
            elif mrks >= 70 :
                lstMrks.append('A')
            elif mrks >= 60 :
                lstMrks.append('B')
            elif mrks >= 50 :
                lstMrks.append('C')
            elif mrks >= 40:
                lstMrks.append('D')
            else:
                lstMrks.append('F')

df1['Grade'] = lstMrks
print("\n Dataframe after calculating grades")
print (df1)


Output :-

Initial values in dataframe
       Name  Marks  Grade
0      Path   61.0    NaN
1     Walla   75.0    NaN
2  Computer   95.0    NaN
3    Portal   89.0    NaN
4   Express   73.6    NaN

 Dataframe after calculating grades
       Name  Marks Grade
0      Path   61.0     B
1     Walla   75.0     A
2  Computer   95.0    A+
3    Portal   89.0     A
4   Express   73.6     A

>>>

Post a Comment

You can help us by Clicking on ads. ^_^
Please do not send spam comment : )

Previous Post Next Post