2016-03-27 26 views
0

ile saymak için bir araya toplar. Onları içeren bir sayıya ihtiyacım var. Numpy'nin, ancak tüm nan değiştirilmiş toplamları için bir toplamı vardır, özel bir toplama kullanmalı mıyım yoksa bunu bulamadığım bir yol var mı?Pandalar, sayıları

Bu, groupby'ler içindir ve normal NaN işlevselliği için ortalama, ancak sayım için garip istiyorum. Kod

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 

0 NaN yerine 3 Nan olmak istiyorum. tek sorunun sayımı ise

+1

Eğer bir sorununuz gösterebilir Çözmek istediğin ve istediğin çıktı? –

+0

Bazı kodlar eklendi, nasıl biçimlendirileceğini bilmiyorum, üzgünüm. – Snark

cevap

1

sadece len()

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

çıktı kullanın:

 1   
    count mean size 
0     
0  0 NaN 3 
0

, böyle NaN değerlerini değiştirebilirsiniz:

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

Bazıları niye ihtiyaç duymayan bazılarının çoğunun ihtiyaç duymadığı çoklu kümeler kullanmaya çalışıyorum. Bu, toplamı/ürünü değil, sayılır. – Snark

+0

Boyut istediğim şey. – Snark