微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何创建每列仅显示前 N 行值的堆积条形图

如何解决如何创建每列仅显示前 N 行值的堆积条形图

我是 Python 新手,正在研究这个项目,研究 IT 公司赢得的交易。 对于下面的数据,我想创建一个堆积条形图,仅显示每个“客户类别”的前 5 个“VP-Manager”值,即获胜的前 5 个“VP-Manager”每个“客户类别”的交易最多。

[数据样本][1]:https://i.stack.imgur.com/f9sdG.png

我从@Jon Clements 的回答中获得了以下问题的指导: Create a stacked bar chart of the N largest columns per row in a dataframe

这是我的代码

top5 = (
    # bring the client category back as a column to use as a grouping var
    dataw.reset_index()
    # make a long DF of client category/column/name value
    .melt(id_vars='Client Category')
    # order DF by highest values first
    .sort_values('VP-Manager',ascending=False)
    # group by the index and take the first 5 rows of each
    .groupby('Client Category')
    .head(5)
    # pivot back so we've got an X & Y to chart...
    .pivot('Client Category','VP-Manager')
    # drop the value level as we don't need that
    .droplevel(level=0,axis=1)
)

top5.plot.bar(stacked=True)

但我不断收到错误消息 KeyError: 'VP-Manager'

尝试了各种方法(以及其他几种方法),但似乎无法解决此问题。

请问有人可以帮忙吗?谢谢!

更新:我正在寻找与此类似的图表 - [期望输出][2]:https://i.stack.imgur.com/yb6Xl.jpg

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。