2013-10-18 32 views
1

我想总结一个groupby对象中列的值,对于我分组的每个条目。将一组groupby对象中的值进行求和?

说我有这样的DF:

Letters Numbers Items Bool 
A  1  lamp 1 
B  2  glass 1 
B  2  table 1 
C  5  pic 0 

我GROUPBY字母,然后想知道的字母组中的布尔变量的总和。我将如何做到这一点?我一直在试图

df_new = df.groupby('letters').bool.sum() 

...

df_new = df.groupby('letters').sum('bool') 

和其他变化......

最后,我想获得一个包含总和值的矢量每个字母的组。例如,这将是[1,2,0]

回答

3

你真的很接近!鉴于

>>> df 
    Letters Numbers Items Bool 
0  A  1 lamp  1 
1  B  2 glass  1 
2  B  2 table  1 
3  C  5 pic  0 

你可以概括一切,把你想要的列:

>>> # slower 
>>> df.groupby("Letters").sum()["Bool"] # sum everything, select Bool 
Letters 
A   1 
B   2 
C   0 
Name: Bool, dtype: int64 

或者更好的,只需要你想列,并概括:

>>> df.groupby("Letters")["Bool"].sum() # select Bool, sum it 
Letters 
A   1 
B   2 
C   0 
Name: Bool, dtype: int64 

我宁愿坚持与Series,因为你可以做得更多,但如果你愿意,你可以使用list.tolist()将它转换为list

+1

#TODO(mgilson)了解如何使用熊猫... – mgilson

+0

@mgilson:我想我可能在这里曾提到过这一点,但我曾经有一个本地代码,我一起进行数据传输。经过一个下午的'熊猫'后,我扔了它,并没有回头看。我唯一的希望就是Martijn从不接受它:^) - 我第一次看到他回答我转向Ruby或Julia或什么的“熊猫”问题。 <0.5 wink> – DSM

+0

我不认为Martijn甚至拿起numpy/scipy呢。我不认为他有兴趣。公平地说,我慢慢地试图学习Ruby,因为我们的产品使用它。到目前为止,我大多没有留下深刻印象(虽然它确实有一些有趣的点,比如他们的“块”或他们称之为的任何东西)...我也对学习Go感兴趣... – mgilson

相关问题