pandas - 使用组(和总和)创建堆积条形图
问题描述
这是独一无二的,因为我希望堆积条形图反映实际数值,而不是示例中的计数或大小
我有一个数据框
## create Data frame
DF = pd.DataFrame({ 'name':
['AA6','B7Y','CCY','AA6','B7Y','CCY','AA6','B7Y','CCY','AA6'],
'measure': [3.2,4.2,6.8,5.6,3.1,4.8,8.8,3.0,1.9,2.1]})
我想按名称分组
#Create a groupby object
gb=DF.groupby(['name', 'measure'])
gb.aggregate('sum')
然后绘制名称(AA6、B7Y 和 CCY)中三个类别的条形图,其中每个相应的“度量”值堆叠,并按它们的顺序排列(不是按它们出现在上面的升序)
我试过这个:
DF.groupby('name').plot(kind='bar', stacked=True)
但它只是创建单独的图。
解决方案
如果我明白你在问什么:
df = pd.DataFrame({ 'name': ['AA6','B7Y','CCY','AA6','B7Y','CCY','AA6','B7Y','CCY','AA6'],
'measure': [3.2,4.2,6.8,5.6,3.1,4.8,8.8,3.0,1.9,2.1]})
df.groupby(["name", "measure"])["measure"].sum().unstack().plot(kind="bar", stacked=True)
我们sum
用来保持measure
条形图中的大小。
如果您不需要图例,请添加legend=False
到plot(...)
.
推荐阅读
- python - 使用 random.choice() 随机选择一个动作(定义)
- java - 检查字符串并处理无效日期
- java - 为什么编译器认为 `byte...` 和 `char...` 是模棱两可的
- python - 抓取递归结构时从表格的单元格中获取文本值
- sql-server - 将 SQL 数据库导出到 Excel 缺少映射数据类型,如 int、smallint 等
- java - 将字符串拆分为单词和标点符号,但不要在内部标点符号上拆分
- macros - 宏数值比较
- javascript - 更改只读输入值
- javascript - 如何强制组件在同步请求之间重新渲染?(反应原生)
- excel - 如何从表中选择除标题之外的所有项目?