2015-12-22 272 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