如何根据熊猫中的值的频率绘制堆积条?

时间:2017-05-05 09:14:05

标签: python pandas frequency stacked-chart

我的数据框有两列'position'和'rankvalue'。

rankvalue   position
    0   D   3
    1   D   20
    2   S   1
    3   D   80
    4   D   100
    5   S   1
    6   D   3
    7   D   100
    8   D   20
    9   D   80
    10  D   20
    11  D   80
    12  S   1
    13  D   3
    14  D   100
    15  S   1
    16  VS  3
    17  LS  100
    18  D   20
    19  LS  80

我按“位置”对其进行分组,然后计算每个位置的“rankvalue”频率:

aggre= results.groupby(['position','rankvalue'])['position'].agg({'Frequency':'count'})

这会产生百分比:

final = aggre.groupby(level=0).apply(lambda x:100 * x / float(x.sum()))

enter image description here

如何根据数据框'final'生成堆积条?

final.plot(kind='bar', stacked=True) # this does not produce intended stacked bar

x轴应为位置(1,3,20,80,100),y轴应为频率百分比。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

尝试:

final.Frequency.unstack().plot.bar(stacked=True)

或者

final.Frequency.unstack(0).plot.bar(stacked=True)