2015-12-22 223 views
0

其他列的列,和值我有一个非常大的文件(5GB),我需要使用两列如何GROUPBY在大熊猫

 a b c d e 
0 2 3 5 5 4 
1 2 3 2 5 4 
2 1 3 2 5 4 
3 2 4 -10 5 3 
4 2 4 1 5 3 

所以很明显,我要算occurence数量找到

(2,3):7 
(1,3):2 
(2,4):-9 

我该如何以非常快的方式做到这一点。

我用:

df.groupby(['a','b'])['c'].sum() 

但它不能做出正确的结果吗?任何想法

回答

0

IIUC需要count

print df.groupby(['a','b'])['c'].count() 
a b 
1 3 1 
2 3 2 
    4 2 
Name: c, dtype: int64 

,如果你需要新列,使用reset_index与参数name

print df.groupby(['a','b'])['c'].count().reset_index(name='count') 
    a b count 
0 1 3  1 
1 2 3  2 
2 2 4  2 

或者你可以使用size(列c是略):

print df.groupby(['a','b']).size() 
a b 
1 3 1 
2 3 2 
    4 2 
dtype: int64 
+0

这是怎么回事工作?如果我的回答很有帮助,你可以加入并接受。谢谢。 – jezrael