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%。