Pandy: jak używać dropna() z thresh
Możesz użyć funkcji dropna() , aby usunąć wiersze z ramki DataFrame pandy, które zawierają brakujące wartości.
Możesz także użyć argumentu thresh , aby określić minimalną liczbę wartości innych niż NaN, które wiersz lub kolumna muszą być zachowane w DataFrame.
Oto najczęstsze sposoby wykorzystania argumentu progowego w praktyce:
Metoda 1: Zachowaj tylko wiersze z minimalną liczbą wartości innych niż NaN
#only keep rows with at least 2 non-NaN values df. dropna (thresh= 2 )
Metoda 2: Zachowaj tylko wiersze z minimalnym procentem wartości innych niż NaN
#only keep rows with at least 70% non-NaN values df. dropna (thresh= 0.7 * len (df. columns ))
Metoda 3: Zachowaj tylko kolumny z minimalną liczbą wartości innych niż NaN
#only keep columns with at least 6 non-NaN values df. dropna (thresh= 6 ,axis= 1 )
Metoda 4: Zachowaj tylko kolumny z minimalnym procentem wartości innych niż NaN
#only keep columns with at least 70% non-NaN values df. dropna (thresh= 0.7 * len (df), axis= 1 )
Poniższe przykłady pokazują, jak w praktyce używać każdej metody z następującą ramką DataFrame pand:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' points ': [18, np.nan, 19, 14, 14, 11, 20, np.nan], ' assists ': [5, np.nan, np.nan, 9, np.nan, 9, 9, 4], ' rebounds ': [11, np.nan, 10, 6, 6, 5, 9, np.nan]}) #view DataFrame print (df) team points assists rebounds 0 A 18.0 5.0 11.0 1 B NaN NaN NaN 2 C 19.0 NaN 10.0 3D 14.0 9.0 6.0 4 E 14.0 NaN 6.0 5 F 11.0 9.0 5.0 6G 20.0 9.0 9.0 7H NaN 4.0 NaN
Przykład 1: Zachowaj tylko wiersze z minimalną liczbą wartości innych niż NaN
Możemy użyć następującej składni, aby zachować w ramce DataFrame tylko wiersze, które mają co najmniej 2 wartości inne niż NaN:
#only keep rows with at least 2 non-NaN values df. dropna (thresh= 2 ) team points assists rebounds 0 A 18.0 5.0 11.0 2 C 19.0 NaN 10.0 3D 14.0 9.0 6.0 4 E 14.0 NaN 6.0 5 F 11.0 9.0 5.0 6G 20.0 9.0 9.0 7H NaN 4.0 NaN
Należy zauważyć, że wiersz na pozycji indeksu 1 został usunięty, ponieważ w całym wierszu zawierał tylko jedną wartość inną niż NaN.
Przykład 2: Zachowaj tylko wiersze z minimalnym procentem wartości innych niż NaN
Możemy użyć następującej składni, aby zachować tylko te wiersze w ramce danych, które mają co najmniej 70% wartości innych niż NaN:
#only keep rows with at least 70% non-NaN values df. dropna (thresh= 0.7 * len (df. columns )) team points assists rebounds 0 A 18.0 5.0 11.0 2 C 19.0 NaN 10.0 3D 14.0 9.0 6.0 4 E 14.0 NaN 6.0 5 F 11.0 9.0 5.0 6G 20.0 9.0 9.0
Należy zauważyć, że wiersze na pozycjach indeksowych 1 i 7 zostały usunięte, ponieważ wiersze te nie zawierały co najmniej 70% wartości jako wartości inne niż NaN.
Przykład 3: Zachowaj tylko kolumny z minimalną liczbą wartości innych niż NaN
Możemy użyć następującej składni, aby zachować tylko te kolumny w ramce danych, które mają co najmniej 6 wartości innych niż NaN:
#only keep columns with at least 6 non-NaN values df. dropna (thresh= 6 ,axis= 1 ) team points rebounds 0 A 18.0 11.0 1 B NaN NaN 2 C 19.0 10.0 3D 14.0 6.0 4E 14.0 6.0 5 F 11.0 5.0 6G 20.0 9.0 7 H NaN NaN
Należy pamiętać, że kolumna „asysty” została usunięta, ponieważ nie zawierała ona w kolumnie co najmniej 6 wartości innych niż NaN.
Przykład 4: Zachowaj tylko kolumny z minimalnym procentem wartości innych niż NaN
Możemy zastosować następującą składnię, aby zachować w ramce DataFrame tylko te kolumny, które mają co najmniej 70% wartości innych niż NaN:
#only keep columns with at least 70% non-NaN values df. dropna (thresh= 0.7 * len (df), axis= 1 ) team points rebounds 0 A 18.0 11.0 1 B NaN NaN 2 C 19.0 10.0 3D 14.0 6.0 4E 14.0 6.0 5 F 11.0 5.0 6G 20.0 9.0 7 H NaN NaN
Należy zauważyć, że kolumna „wsparcie” została usunięta, ponieważ nie zawierała ona co najmniej 70% wartości innych niż NaN.
Uwaga : pełną dokumentację funkcji pandy dropna() można znaleźć tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w pandach:
Pandy: Jak zresetować indeks po użyciu dropna()
Pandy: jak używać dropna() z określonymi kolumnami
Pandy: Jak usuwać wiersze na podstawie wielu warunków