【发布时间】:2019-04-09 05:09:49
【问题描述】:
我有一个带有两列 A 和 B 的 pandas 数据框。 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),),并将结果绘制为堆积条形图。
有人可以帮忙吗?
【问题讨论】:
-
有人问过类似的问题yesterday。只需将
normalize=True作为参数添加到value_counts -
是的,愚蠢的我。就这么容易。谢谢阿洛兹
标签: python python-3.x pandas data-visualization