将一个 DF 中的值与另一个 DF 中的值进行多索引并绘制结果

Dividing values in one DF with multi-indexing by values from another and plotting results

我有一个 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 中的值。

有什么建议吗?

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