2013-12-19 120 views
6

我有一个很大的数据框,我想按某个列进行分组,并用图形检查每个组使用boxplot的分布情况。我发现df.boxplot()会对数据帧的每一列进行处理,并将其放在一个图中,就像我需要的一样。按列分组,然后按大熊猫索引做盒子图

问题是,在groupby操作之后,我的数据全部位于索引中组标签的一列中,所以我无法在结果上调用boxplot。

这里有一个例子:

df = DataFrame({'a':rand(10),'b':[x%2 for x in range(10)]}) 
df 

     a b 
0 0.273548 0 
1 0.378765 1 
2 0.190848 0 
3 0.646606 1 
4 0.562591 0 
5 0.409250 1 
6 0.637074 0 
7 0.946864 1 
8 0.203656 0 
9 0.276929 1 

现在我想按列B和箱线图在一个箱线图这两个群体的分布。我怎样才能做到这一点?

回答

12

您可以使用boxplot的参数by。那是你在找什么?

df.boxplot(column='a', by='b') 
+2

哈哈哈那么容易... :) – idoda

+0

实测值在[文档]的'column'(http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame描述.boxplot.html)超混淆 - “* groupby *的任何有效输入” - 尽管回头看过这个答案是有道理的:) – Owen