如果我有以下数据帧:
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
Run Code Online (Sandbox Code Playgroud)
我想得到一张新表,显示每个科目分数的百分比高于80的阈值(包括80).例如,历史上有两个学生的分数高于80,因此历史的百分比是2/4 = 50%.有人可以用Python帮助我吗?谢谢.
history 50%
english 75%
math 50%
biology 50%
Run Code Online (Sandbox Code Playgroud)
使用:
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
Run Code Online (Sandbox Code Playgroud)
说明:
首先按位置选择必要的列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
Run Code Online (Sandbox Code Playgroud)
然后通过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
Run Code Online (Sandbox Code Playgroud)
通过以下方式得到mean多个:100DataFrame.mul
print (df.iloc[:, 2:].ge(80).mean().mul(100))
history 50.0
english 75.0
math 50.0
biology 50.0
dtype: float64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
504 次 |
| 最近记录: |