我有一個數據框,DF,類似於下面的。將字母等級轉換爲GPA:我的代碼出了什麼問題?
ID SUBJ GRADE
1 Amer Natl Govt A
2 Princ Of Macroecon B
3 General Biology B
4 Concept Of Chem C
5 General Chem C
我只是想將字母等級(GRADE)轉換爲成績平均值。
我寫了下面的代碼,它總是返回所有行的異常2.3,就好像我的元組列表中的字母的數據類型與我的數據框中的類型不同,但它們都是字符串。有人能告訴我我的代碼有問題嗎?謝謝。
def getGradePoint(row):
grades = [('A+', 4.0), ('A', 4.0), ('A-', 3.7), ('B+',3.3), ('B',3.0), ('B-',2.7), ('C+',2.3), ('C',2.0),\
('C-',1.7),('D+',1.3),('D',1.0),('D-',0.7),('F',0.0)]
for i in range(len(grades)):
if row == grades[i][0]:
return grades[i][1]
else:
return 2.3
df['GRADE_PT'] = df['GRADE'].apply(getGradePoint)
ID SUBJ GRADE GPA
1 Amer Natl Govt A 2.3
2 Princ Of Macroecon B 2.3
3 General Biology B 2.3
4 Concept Of Chem C 2.3
5 General Chem C 2.3