2016-03-27 73 views
0

熊貓計數聚集忽略南的。我需要一個包括他們的計數。 Numpy有一些但不是所有nan修改的聚合的聚合,我必須使用自定義聚合還是有辦法做到這一點,我找不到?熊貓聚集計數與nans

這是爲了groupby的,我想要正常的NaN功能,但奇怪的數。代碼

In [1]: import numpy 

In [2]: import pandas as pd 

In [3]: df = pd.DataFrame([[0,float('nan')],[0,float('nan')],[0,float('nan')]]) 

In [4]: df.groupby(0).agg(['count', 'mean']) 
Out[4]: 
     1 
    count mean 
0 
0  0 NaN 

我想輸出爲3 Nan而不是0 NaN。

+1

你能說明一個問題你想解決和期望的輸出? –

+0

增加了一些代碼,我不知道如何格式化,對不起。 – Snark

回答

1

只使用len()

size = lambda x: len(x) 
df.groupby(0).agg(['count', 'mean', 'size']) 

輸出:

 1   
    count mean size 
0     
0  0 NaN 3 
0

如果你的唯一的問題是計數,你可以像這樣的替換NaN值:

In [17] : df = pd.DataFrame([0,NaN,3]) 
      print df.count() 

Out [17]: 0 2 
      dtype: int64 


In [18] : marker = -1 
      df = df.fillna(marker) 
      print df.count() 

Out [18]: 0 3 
      dtype: int64 
+0

我想要使用多個集合,其中一些需要nan,其他的則不需要。這是處理說,總和/產品,但不計數。 – Snark

+0

大小是我想要的。 – Snark