我有一个熊猫数据框,其中有两列A
和B
。 B
列包含三个类别X
,Y
,“ 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),)
一样,然后将结果绘制为堆积条形图。
有人可以帮忙吗?
答案 0 :(得分:3)
您可以找到按行求和,并沿轴进行除法,如下所示:
Vue Dev Tool
然后绘制您应该能够使用的图
Vue Dev Tool