Jak mogę uzyskać liczbę brakujących wartości w każdym wierszu w ramce danych Pandas. Chciałbym podzielić ramkę danych na różne ramki danych, które mają taką samą liczbę brakujących wartości w każdym wierszu.
Jakieś sugestie?
Możesz zastosować liczenie do wierszy w ten sposób:
test_df.apply(lambda x: x.count(), axis=1)
test_df:
A B C
0: 1 1 3
1: 2 nan nan
2: nan nan nan
wynik:
0: 3
1: 1
2: 0
Możesz dodać wynik jako kolumnę taką jak ta:
test_df['full_count'] = test_df.apply(lambda x: x.count(), axis=1)
Wynik:
A B C full_count
0: 1 1 3 3
1: 2 nan nan 1
2: nan nan nan 0
Podczas korzystania z pandy, starają się unikać przeprowadzenie operacji w pętli, w tym
apply
,map
,applymap
itp to jest wolna!Jeśli chcesz policzyć brakujące wartości w każdej kolumnie, spróbuj:
df.isnull().sum()
lubdf.isnull().sum(axis=0)
Z drugiej strony możesz liczyć w każdym rzędzie (co jest twoim pytaniem) przez:
df.isnull().sum(axis=1)
Jest to około 10 razy szybsze niż rozwiązanie Jana van der Vegta (BTW liczy prawidłowe wartości, a nie wartości brakujące):
źródło
Prosty sposób:
źródło
Lub możesz po prostu skorzystać z metody info dla obiektów ramki danych:
która zapewnia liczbę wartości innych niż null dla każdej kolumny.
źródło
wartości zerowe wzdłuż kolumny,
puste wartości wzdłuż kolumny,
wartości zerowe wzdłuż wiersza,
puste wartości wzdłuż rzędu,
źródło
Ten fragment zwróci wartość całkowitą całkowitej liczby kolumn z brakującą wartością:
źródło
źródło
Jeśli chcesz policzyć brakujące wartości:
źródło