如果我具有以下数据框:
studentId sex history english math biology
01 male 75 90 85 60
02 female 85 80 95 70
03 male 55 60 78 86
04 male 90 89 76 80
我想获得一个新表,该表显示每个主题得分的百分比高于阈值80(包括80)。例如,有两个学生的历史分数高于80,因此历史百分比为2/4 = 50%。 有人可以帮助我使用Python吗?谢谢。
history 50%
english 75%
math 50%
biology 50%
答案 0 :(得分:8)
使用:
s = df.iloc[:, 2:].ge(80).mean().mul(100)
print (s)
history 50.0
english 75.0
math 50.0
biology 50.0
dtype: float64
说明:
首先按位置DataFrame.iloc
仅选择必要的列:
print (df.iloc[:, 2:])
history english math biology
0 75 90 85 60
1 85 80 95 70
2 55 60 78 86
3 90 89 76 80
然后用DataFrame.ge
(>=
)进行比较:
print (df.iloc[:, 2:].ge(80))
history english math biology
0 False True True False
1 True True True False
2 False False False True
3 True True False True
然后将mean
乘以100
乘DataFrame.mul
来获得print (df.iloc[:, 2:].ge(80).mean().mul(100))
history 50.0
english 75.0
math 50.0
biology 50.0
dtype: float64
:
src/main/web-app/WEB-INF