python - Python:基于同一 DF 内多列值的堆积条形图
问题描述
假设我们有一个像下面这样的 DF:
channel store product orders
offline Swindon webcam 97
offline Kettering webcam 28
offline Swindon ebook 55
offline Kettering ebook 77
offline Swindon tablet 122
offline Kettering tablet 81
online Swindon webcam 252
online Kettering webcam 111
online Swindon ebook 81
online Kettering ebook 244
online Swindon tablet 361
online Kettering tablet 49
我的目标是得到一个带有 4 个堆叠条的图(每个商店和可用的渠道组合一个),显示每个产品在每个产品中代表的销售百分比。
解决方案
最简单的方法是首先创建一个数据透视表,然后绘制它:
df.pivot_table(index=["channel", "store"], columns='product', values='orders', aggfunc='sum').plot(kind='bar', stacked=True)
事实上,你甚至不需要 a pivot_table
,因为不需要对数据进行任何计算,所以你可以像这样重新排序表:
df.pivot(index=["channel", "store"], columns='product', values='orders').plot(kind='bar', stacked=True)
并会收到相同的结果。
推荐阅读
- javascript - 如何延迟从头部加载 html 正文?
- java - Wicket 8.x Excel 下载链接不起作用并显示 404 错误
- flutter - 什么是 Flutter 尽可能快地迁移的最佳 Firebase 替代方案?
- c# - 将 HEX 转换为(扩展的)ASCII 0-255,没有 UTF 用于 DOS C#
- haskell - 图形库未使用 cabal 安装
- sql - 以前的记录,Postgres
- google-apps-script - 如何确定此脚本的输出?
- python-3.x - 在 Cassandra cql 查询中如何转换包含时间戳的字符串,然后在 where 子句中使用时间序列查询?
- mysql - React Native - FlatList 不呈现绑定另一个组件
- cassandra - Cassandra 节点与 Vnodes 令牌策略极度不平衡