Python 在列值上绘制堆叠条形图
我有一个熊猫数据框,看起来像这样:Python 在列值上绘制堆叠条形图,python,pandas,bar-chart,Python,Pandas,Bar Chart,我有一个熊猫数据框,看起来像这样: ID Management Administrative 1 1 2 3 2 1 4 3 3 10 1 3 从本质上讲,1-3是低-中或高等级。我想要一个在x轴上具有管理和管理功能的堆叠条形图,每个列的1,2,3以百分比表示的堆叠组成 e、 g.如果只有上述4个条目,则1个条目将构成管理栏高度的50%,2个条目
ID Management Administrative
1 1 2
3 2 1
4 3 3
10 1 3
从本质上讲,1-3是低-中或高等级。我想要一个在x轴上具有管理和管理功能的堆叠条形图,每个列的1,2,3以百分比表示的堆叠组成
e、 g.如果只有上述4个条目,则1个条目将构成管理栏高度的50%,2个条目将构成管理栏高度的25%,3个条目将构成管理栏高度的25%。y轴将上升到100%
希望这是有意义的。很难解释,但如果不清楚,愿意进一步澄清 您将需要链接几个操作:首先
melt
您的数据集将部门
作为新变量移动,然后您可以groupby
部门和评级
到计数
落入该存储桶的ID数量,然后,您可以通过groupby
再次通过Department
计算百分比。最后,您可以绘制
堆叠条形图:
df4.melt().rename(columns={'variable':'Dept', 'value':'Rating'}
).query('Dept!="ID"'
).groupby(['Dept','Rating']).size(
).rename('Count'
).groupby(level=0).apply(lambda x: x/sum(x)
).unstack().plot(kind='bar', stacked=True)
我不太清楚,因为我看不出您的解释与您的数据帧之间的关系。对我来说,对于指数1,管理层占33%,行政层占66%。