Я считаю, что вам нужно cut
с mean
, потому что категорический необходимо преобразовать в float:
bins = [0,60,70,80,90,101]
df3['letters'] = pd.cut(df3['Scores'], bins=bins, labels=list('FDCBA'))
df3['points'] = pd.cut(df3['Scores'], bins=bins, labels=[0.0,1.0,2.0,3.0,4.0])
mean = df3['points'].astype(float).mean()
print (mean)
3.8333333333333335
print (df3)
Course Scores letters points
0 Art II 93.0 A 4.0
1 Spanish II 100.0 A 4.0
2 Algebra II Trig Honors 96.0 A 4.0
3 Christian Scriptures 99.0 A 4.0
4 Chemistry NaN NaN NaN
5 American History Honors 87.0 B 3.0
6 Phys Ed NaN NaN NaN
7 Chemistry II 92.0 A 4.0