使用多个索引将一个DF中的值除以另一个DF中的值并绘制结果

时间:2017-01-09 22:53:52

标签: python-2.7 pandas plot dataframe multi-index

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

有什么建议吗?

1 个答案:

答案 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