2013-05-15 16 views
6

Her zaman beni rahatsız eden kolay şeyler. Ay ve yıl bazında gruplandırılmış bir Dataframe'deki bazı değişkenlerin sıfır olmayan değerlerinin sayısını elde etmeye çalışıyorum. Bu yüzdenPandalar veri grubu grubundaki indeks veya Boş değerlerin sayısı nasıl sayılır?

counts_by_month=df[variable1, variable2].groupby([lambda x: x.year,lambda x: x.month]).count() 

çalışıyor hangi yapabilirsiniz Ama GERÇEKTEN bilmek istiyorum NaN'ler ne kadar her grupta bu değerlerin birçoğu olduğunu. Bu yüzden her değişkendeki Nans'ı saymak istiyorum, böylece her grupta eksik olan yüzde verilerini hesaplayabilirim. Bunu yapmak için bir işlev bulamıyorum. veya belki de gruptaki toplam öğeleri sayarak aynı sonuca varabilirim. Sonra NaN'ler Toplam - 'Null olmayan değerler'

Dizin değerlerini bir şekilde sayıp atamayacağımı bulmaya çalışıyorum ama bunu yapamıyorum. Bu konuda herhangi bir yardım büyük beğeni topluyor. iyi dileklerimle Jason

cevap

6
In [279]: df 
Out[279]: 
    A   B   C   D   E 
a foo  NaN 1.115320 -0.528363 -0.046242 
b bar 0.991114 -1.978048 -1.204268 0.676268 
c bar 0.293008 -0.708600  NaN -0.388203 
d foo 0.408837 -0.012573 1.019361 1.774965 
e foo 0.127372  NaN  NaN  NaN 

In [280]: def count_missing(frame): 
    return (frame.shape[0] * frame.shape[1]) - frame.count().sum() 
    .....: 

In [281]: df.groupby('A').apply(count_missing) 
Out[281]: 
A 
bar 1 
foo 4 
dtype: int64 
+0

Mükemmel gerek yoktur. Örnek için teşekkürler! SHAPE bana daha sonra NaN değerlerini hesaplamak için gereken bilgileri verdi. – user1911866

4
df.isnull().sum() 

Daha hızlı ve özel bir işlev :)

+3

'yığınları sayesinde df.isnull(). Sum (axis = 1) 'bu soru için daha uygundur. Her satırdaki eksik değerlerin sayılmasıdır. – steco

+0

Düzeltilmeye devam ediyorum :) – GrimSqueaker

İlgili konular