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)
虽然看起来有点笨重!
假设我有一个包含很多值的数据框 (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)
虽然看起来有点笨重!