假设我有一个包含很多值的数据框(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
答案 0 :(得分:0)
所以,我想我想出来了。第一个需要使用堆栈数据; .unstack(级别= -1)
这将把它变成一个n×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)
虽然有点笨拙!