分组后获得每一列的百分比

时间:2018-11-05 19:49:29

标签: python python-3.x pandas data-visualization

我有一个熊猫数据框,其中有两列ABB列包含三个类别XY,“ Z”。我需要检查A中每个组的特定值有多少百分比。这是数据框的样子:

  A   B
  AA  X 
  BB  Y
  CC  Z
  AA  Y
  AA  Y
  BB  Z 
  ..  ..

现在,我想绘制一个堆积图,但是它应该是基于百分比的堆积图,而不仅仅是基于B中与A中的组相对应的每个类别的计数。这是我到目前为止所做的:

df.groupby(['A'])['B'].value_counts().unstack()这给了我

B   X    Y      Z
A           
AA  65   666    5
BB  123  475    6
CC  267  1337   40

现在,我想将每一列除以其对应行的总和,就像第一行(65/(65+666+5), 666/(65+666+5), 5/(65+666+5),)一样,然后将结果绘制为堆积条形图。 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

您可以找到按行求和,并沿轴进行除法,如下所示:

Vue Dev Tool

然后绘制您应该能够使用的图

Vue Dev Tool