2015-04-30 13 views
30

Mam naprawdę dużą ramkę DataFrame i zastanawiałem się, czy był krótki (jeden lub dwa liniowy) sposób, aby uzyskać liczbę wpisów innych niż NaN w DataFrame. Nie chcę robić tej jednej kolumny na raz, ponieważ mam blisko 1000 kolumn.Liczba haseł innych niż NaN w każdej kolumnie Dataframe

df1 = pd.DataFrame([(1,2,None),(None,4,None),(5,None,7),(5,None,None)], 
        columns=['a','b','d'], index = ['A', 'B','C','D']) 

    a b d 
A 1 2 NaN 
B NaN 4 NaN 
C 5 NaN 7 
D 5 NaN NaN 

wyjściowa:

a: 3 
b: 2 
d: 1 
+0

df1 [df1.notnull()]. ​​Count() wydaje się, że zadziałało – cryp

+2

Dodatkowe indeksowanie z 'df1.notnull()' nie jest konieczne, ponieważ 'count' ignoruje wartości null. –

+0

W przeciwieństwie do 'seria.value_counts (..., dropna = False)', nie ma opcji na 'df.count()', aby bezpośrednio uzyskać liczbę NA. – smci

Odpowiedz

44

Sposób count() zwraca liczbę nie-NaN wartości w każdej kolumnie:

>>> df1.count() 
a 3 
b 2 
d 1 
dtype: int64 

Podobnie count(axis=1) zwraca liczby wartości w nie- NaN każdy rząd.

Powiązane problemy