pandas 中分组数据的堆叠直方图

Stacked Histograms of Grouped Data In pandas

假设我有一个包含很多值的数据框 (df),包括两列 X 和 Y。我想创建一个堆叠直方图,其中每个 bin 都是 X 中的分类值(比如 A 和 B),每个 bin 内都是按 Y 中的值(例如 a、b、c、...)堆叠的堆栈。

我可以 运行 df.groupby(["X","Y"]).size() 得到如下输出,但我怎样才能制作堆叠直方图从这个?

A      a      14
       b      41
       c       4
       d       2
       e       2
       f      15
       g       1
       h       3
B      a      18
       b     37
       c       1
       d       3
       e       1
       f      17
       g       2

所以,我想我明白了。第一个需要使用堆栈数据; .unstack(level=-1)

这会将其变成 n x m 类数组结构,其中 n 是 X 条目的数量,m 是 Y 条目的数量。从此表格中,您可以遵循此处给出的大纲: http://pandas.pydata.org/pandas-docs/stable/visualization.html

所以总的命令是:

df.groupby(["X","Y"]).size().unstack(level=-1).plot(kind='bar',stacked=True)

虽然看起来有点笨重!