我正在尝试制作精美的堆叠条形图,其中我的x轴值是某些groupby运算(年和月)的结果,而需要堆叠的值是对a进行聚合运算的结果(总和)。单列,但agg取决于另一列的值。
这里是例子。首先,我有一个这样的表:
year month amount category
0 2017 1 10 red
1 2017 1 40 blue
2 2017 1 10 blue
2 2017 2 15 blue
3 2016 3 20 blue
4 2016 6 5 red
我想创建一个适合我要构建的图的表。由于我正在尝试在x轴上绘制(年,月)对,并且每个类别中的金额叠加在一起,因此,我认为我想要的表格是这样的:
amount_red amount_blue
year month
2016 3 0 20
2016 6 5 0
2017 1 10 50
2 0 15
我知道除了年份和月份以外,我还可以按类别分组,然后汇总,但是我不希望类别作为索引中的值,因为我不想在x轴上将其分类。我需要在列中的每个类别上都有汇总的结果,以便为我的图叠加。
当我拥有df时,我将使用:df.plot.bar(stacked=True)
我应该在整个表上创建自定义聚合器吗? 我应该在进行分组依据之前按每个类别进行筛选,然后最后尝试全部合并吗? 因为我只想要一个情节,所以我会做错所有的事情吗?