2013-05-15 16 views
6

Zawsze jest to coś, co wydaje się łatwe, co mnie wkurza. Próbuję uzyskać liczbę wartości innych niż null niektórych zmiennych w ramce danych pogrupowane według miesiąca i roku. Więc mogę ten, który działa dobrzeJak policzyć liczbę indeksu lub wartości Null w grupie ramek danych Pandy

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

zrobić ale naprawdę chcę wiedzieć, ilu z tych wartości w każdej grupie są Nans. Więc chcę policzyć Nans w każdej zmiennej, aby móc obliczyć procent danych brakujących w każdej grupie. Nie mogę znaleźć funkcji, aby to zrobić. lub może uda mi się osiągnąć ten sam cel, licząc łączne pozycje w grupie. Wtedy NaN byłyby Totalami - "Wartości inne niż Null"

Próbowałem dowiedzieć się, czy mogę jakoś policzyć wartości indeksu, ale nie byłem w stanie tego zrobić. Każda pomoc w tym bardzo doceniane. Najlepsze życzenia Jason

Odpowiedz

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

doskonała. Dzięki za przykład! SHAPE przekazał mi informacje wymagane do obliczenia wartości NaN. Dzięki hałdom – user1911866

4
df.isnull().sum() 

Szybciej, i nie potrzebują funkcji niestandardowej :)

+3

'df.isnull() .sum (axis = 1)' jest bardziej odpowiednie dla tego pytania. Zlicza liczbę brakujących wartości w każdym rzędzie. – steco

+0

Stoję poprawiony :) – GrimSqueaker

Powiązane problemy