Mam dane, w których chcę znaleźć liczbę NaN
, więc jeśli jest mniejsza niż jakiś próg, upuszczę te kolumny. Spojrzałem, ale nie byłem w stanie znaleźć dla tego żadnej funkcji. istnieje value_counts
, ale byłoby to dla mnie powolne, ponieważ większość wartości jest odrębna i chcę NaN
tylko liczyć .
459
df
, możesz użyćdf.isnull().sum().sum()
.sum(axis=0)
co jest domyślnym zachowaniem. I dostać rowsums,.sum(axis=1)
.df.isnull().values.sum()
df['column_name'].isna().sum()
działa również, jeśli ktoś się zastanawia.Możesz odjąć całkowitą długość od liczby wartości innych niż nan:
Powinieneś zmierzyć czas na swoich danych. Dla małych serii uzyskał 3-krotne przyspieszenie w porównaniu z
isnull
rozwiązaniem.źródło
isnull
jest już dwa razy szybsze.Załóżmy, że
df
jest to panda DataFrame.Następnie,
To da liczbę wartości NaN w każdej kolumnie.
Jeśli potrzebujesz, wartości NaN w każdym wierszu,
źródło
W oparciu o najczęściej głosowaną odpowiedź możemy łatwo zdefiniować funkcję, która daje nam ramkę danych do podglądu brakujących wartości i% brakujących wartości w każdej kolumnie:
źródło
Od pand 0.14.1 moja sugestia tutaj mieć kluczowego argumentu w metodzie value_counts został wykonany:
źródło
jeśli po prostu zlicza wartości nan w kolumnie pand, tutaj jest szybki sposób
źródło
jeśli używasz Notatnika Jupyter, co powiesz na ...
lub
lub czy w danych jest gdziekolwiek NaN, jeśli tak, gdzie?
źródło
Poniżej wydrukowane zostaną wszystkie kolumny Nan w kolejności malejącej.
lub
Poniżej wydrukowanych zostanie 15 pierwszych kolumn Nan w kolejności malejącej.
źródło
Możesz użyć następującej funkcji, która da ci wyjście w ramce danych
Po prostu skopiuj i wklej następującą funkcję i wywołaj ją, przekazując swoją ramkę danych Pandy
Wynik
Jeśli chcesz to uprościć, możesz użyć następującej funkcji, aby uzyskać brakujące wartości w%
źródło
Aby policzyć zera:
Aby policzyć NaN:
lub
źródło
Możesz użyć metody value_counts i wydrukować wartości np.nan
źródło
s.value_counts(dropna = False)
Proszę użyć poniżej dla określonej liczby kolumn
źródło
To załatwi sprawę.
źródło
Oto kod do liczenia
Null
wartości w kolumnie:źródło
Jest ładny artykuł Dzone z lipca 2017 r., Który szczegółowo opisuje różne sposoby podsumowywania wartości NaN. Sprawdź to tutaj .
Artykuł, który zacytowałem, zapewnia dodatkową wartość poprzez: (1) Wskazanie sposobu zliczania i wyświetlania liczby NaN dla każdej kolumny, dzięki czemu można łatwo zdecydować, czy odrzucić te kolumny, oraz (2) Wykazać sposób wyboru tych wierszy w specyficzne, które mają NaN, aby mogły być selektywnie odrzucane lub przypisywane.
Oto szybki przykład pokazujący użyteczność tego podejścia - z tylko kilkoma kolumnami być może jego przydatność nie jest oczywista, ale okazało się, że jest to pomocne w przypadku większych ramek danych.
źródło
Inną prostą, jeszcze nie zasugerowaną opcją, aby po prostu policzyć NaN, byłoby dodanie kształtu, aby zwrócić liczbę wierszy za pomocą NaN.
źródło
df.isnull (). sum () da kolumnową sumę brakujących wartości.
Jeśli chcesz poznać sumę brakujących wartości w określonej kolumnie, poniższy kod będzie działał df.column.isnull (). Sum ()
źródło
w oparciu o udzieloną odpowiedź i kilka ulepszeń to moje podejście
źródło
df.apply(lambda x: x.value_counts(dropna=False)[np.nan]/x.size*100)
W przypadku, gdy chcesz uzyskać liczniki non-NA (brak) i NA (brak) w różnych grupach wyciąganych według grup:
Zwraca liczbę nie-NA, NA i całkowitą liczbę wpisów na grupę.
źródło
Użyłem rozwiązania zaproponowanego przez @sushmit w moim kodzie.
Możliwa może być również jego odmiana
Zaletą tego jest to, że zwraca wynik dla każdej kolumny w df odtąd.
źródło
Podaje jako wynik:
źródło
Załóżmy, że chcesz uzyskać liczbę brakujących wartości (NaN) w kolumnie (serii) znanej jako cena w ramce danych o nazwie recenzje
Aby uzyskać brakujące wartości, z n_missing_prices jako zmienną, wystarczy zrobić
sum jest tutaj kluczową metodą, próbowałem użyć count, zanim zdałem sobie sprawę, że suma jest właściwą metodą do zastosowania w tym kontekście
źródło
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.count.html#pandas.Series.count
Zwraca liczbę obserwacji innych niż NA / zero w serii
źródło
Do swojego zadania możesz użyć pandas.DataFrame.dropna ( https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html ):
Za pomocą parametru thresh można zadeklarować maksymalną liczbę wartości NaN dla wszystkich kolumn w DataFrame.
Wyjścia kodu:
źródło