继续使用上一节初三某班期末考试为例。
计算方差和平均值:
std = df.std()
mean = df.mean()
语文偏离度前5名:
((df['chinese']-mean['chinese'])/std['chinese']).sort_values(ascending=False)[:5]
输出:
no 4 1.630718 1 1.250070 2 1.097811 5 1.097811 6 1.097811 Name: chinese, dtype: float64
距离平均值都不到2个方差,说明没有特别优异的成绩。相对来说4号同学成绩很不错。
数学偏离度前5名:
no 2 1.243096 16 1.243096 1 1.121890 10 1.121890 3 1.121890 Name: math, dtype: float64
没有特别优异成绩,但16号同学偏科很严重。
英语偏离度前5名:
no 4 1.198910 15 1.140789 5 1.140789 9 1.102042 6 1.063295 Name: english, dtype: float64
英语成绩也很平均,15号同学的英语不错。
物理偏离度前5名:
no 1 1.496796 14 1.448217 3 1.399638 11 1.253901 2 1.253901 Name: physics, dtype: float64
化学偏离度前5名:
no 1 1.643324 3 1.643324 2 1.590950 4 1.486203 5 1.433829 Name: chemistry, dtype: float64
学霸们化学很扎实。
政治偏离度前5名:
no 10 1.109112 7 1.109112 8 1.109112 9 1.109112 2 1.041147 Name: politics, dtype: float64
政治成绩最均衡。
总分偏离前5名:
no 1 1.335001 2 1.307118 3 1.279236 4 1.279236 5 1.218823 Name: total, dtype: float64