我有一个DF,其中包含N个学生和不同科目的成绩:
ANA Math 96.0
Biology 82.0
Chemistry 72.0
TONY Math 77.0
Biology 100.0
Chemistry 82.0
ARI Math 94.0
Biology 98.0
我希望为3位最佳学生(降序)绘制一个带有所有主题成绩的条形图,当最好的学生是最高学生时平均等级全部他所拥有的主题。
在情节中,为每个学生,每个成绩应该乘以其在df2中的值(每个学生都有不同的值):
ANA 0.80
TONY 0.75
ARI 0.95
例如:情节中的ANA等级应为:
ANA Math 76.8
Biology 65.6
Chemistry 57.6
我已设法为最好的3名学生绘制图表,但学生没有按降序排列。 此外,在绘制之前,我还没有找到一种方法可以将每个学生的成绩乘以df2中的值。
有什么建议吗?
答案 0 :(得分:1)
top3 = df.groupby(level=0).mean().nlargest(3).index.tolist()
df.sort_index().loc[top3].mul(df2, level=0)
0 1
ANA Biology 65.60
Chemistry 57.60
Math 76.80
ARI Biology 93.10
Math 89.30
TONY Biology 75.00
Chemistry 61.50
Math 57.75
dtype: float64