将具有多索引的一个 DF 中的值除以另一个 DF 中的值并绘制结果
Posted
技术标签:
【中文标题】将具有多索引的一个 DF 中的值除以另一个 DF 中的值并绘制结果【英文标题】:Dividing values in one DF with multi-indexing by values from another and plotting results 【发布时间】:2017-05-24 07:46:12 【问题描述】:我有一个 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】: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
【讨论】:
以上是关于将具有多索引的一个 DF 中的值除以另一个 DF 中的值并绘制结果的主要内容,如果未能解决你的问题,请参考以下文章