提问人:Steve 提问时间:11/3/2023 最后编辑:Steve 更新时间:11/3/2023 访问量:60
如何从分组和计数的 pandas 框架绘制堆积条形图
How to plot a stacked bar chart from a pandas frame which is grouped and counted
问:
我的目标是生成一个简单的堆积条形图,其中 VALUE 为 X 轴,每种类型是条形堆栈,number(count) 是每个条形堆栈的 y 值。
我得到了数据框分组的结果,如下所示:
价值 | 类型 | |
---|---|---|
0.0 | 0 | 16 |
1 | 26 | |
2 | 15 | |
3 | 18 | |
1.0 | 1 | 15 |
2 | 2 | |
3 | 10 | |
2.0 | 0 | 10 |
1 | 175 | |
2 | 99 | |
3 | 11 | |
15 | 100 | |
3.0 | 0 | 92 |
1 | 20 | |
2 | 17 | |
3 | 26 | |
15 | 1 |
名称:VALUE,dtype:int64
我通过以下方式从大型数据帧中创建了此内容: 数据输出 = df.groupby(['VALUE','TYPE']).agg('VALUE').count()
我想遍历数据帧并访问“计数”,然后将不均匀的结果推送到堆叠图中。
我被困在循环浏览这些数据并访问计数。 对于 I,Enumerate(df.index) 中的 (val, typ): 打印(val) 打印(典型值)
如何访问计数?
对于 val,在 df.groupby(level=0) 中键入: 打印(val) 打印(典型值) 破
数据已存在,但不确定如何访问计数列。
价值 | 类型 | |
---|---|---|
0.0 | 0 | 16 |
1 | 26 | |
2 | 15 | |
3 | 18 |
有没有更简单的方法?或者有人可以解释我如何调节这些数据。
答:
2赞
Scott Boston
11/3/2023
#1
IIUC,你有一个多索引序列 s,如下所示:
VALUE TYPE
0.0 0 16
1 26
2 15
3 18
1.0 1 15
2 2
3 10
2.0 0 10
1 175
2 99
3 11
15 100
3.0 0 92
1 20
2 17
3 26
15 1
Name: count, dtype: int64
为方便起见,我将系列名称重命名为“count”。
s.unstack().plot.bar(stacked=True)
输出:
评论
1赞
Steve
11/4/2023
谢谢斯科特。是的,系列抓住了我。我将其从系列改回数据框并能够使用它,但您的解决方案很棒 - 实现了一衬里 - 感谢您的回复和解决方案。
评论