2014-05-01 178 views
15

我想创建一个复制图片的堆积条形图,我的所有数据都与该Excel电子表格分开。熊猫 - 绘制堆积条形图

enter image description here

我无法弄清楚如何使数据帧的像合照,我也不能弄清楚如何使堆积条形图。我找到的所有示例都以我尝试创建的不同方式工作。

我的数据框是一个csv的所有值缩小到下面的大熊猫数据框。

 Site Name Abuse/NFF 
0 NORTH ACTON  ABUSE 
1 WASHINGTON   - 
2 WASHINGTON  NFF 
3 BELFAST   - 
4 CROYDON   - 

我已成功地与数合计数据,并获得个人数为每个站点,我只是不能似乎它在某种程度上图表结合起来。

非常感谢一些强烈的指导。

完成的代码,非常感谢您的帮助完成。

test5 = faultdf.groupby(['Site Name', 'Abuse/NFF'])['Site Name'].count().unstack('Abuse/NFF').fillna(0) 

test5.plot(kind='bar', stacked=True) 
+0

注意,以飨读者:如果你想接受的答案时,得到相关指数'KeyError',这里使用完成的代码中的问题。 – KobeJohn

回答

35

您是否收到错误,或者只是不确定从哪里开始?

%pylab inline 
import pandas as pd 
import matplotlib.pyplot as plt 

df2 = df.groupby(['Name', 'Abuse/NFF'])['Name'].count().unstack('Abuse/NFF').fillna(0) 
df2[['abuse','nff']].plot(kind='bar', stacked=True) 

stacked bar plot

+0

这产生这个http://i.imgur.com/hocPgWg.jpg这是不正确的,我需要堆叠的部分是每个网站的滥用/非专栏的数量。我没有得到错误,我只是努力开始。为响应欢呼。 – Kuzen

+0

我已经更新了我的答案,在groupby函数之后加入了['滥用/ NFF']部分。添加这意味着“滥用”列将是唯一被聚合的值(在本例中计数)。 – chucklukowski

+1

可悲的是,它现在基本上是一样的图形,但没有堆叠,没有错误,没有传说,基本没有绿色。它计算的总数,而不是每个商店的列中的值的总和,如果这是有道理的。 – Kuzen