Panda's: dropna() gebruiken met thresh
U kunt de functie dropna() gebruiken om rijen uit een Panda DataFrame te verwijderen die ontbrekende waarden bevatten.
Je kunt het thresh- argument ook gebruiken om het minimumaantal niet-NaN-waarden op te geven dat een rij of kolom moet behouden blijven in het DataFrame.
Hier zijn de meest gebruikelijke manieren om het drempelargument in de praktijk te gebruiken:
Methode 1: Bewaar alleen rijen met een minimum aantal niet-NaN-waarden
#only keep rows with at least 2 non-NaN values df. dropna (thresh= 2 )
Methode 2: Bewaar alleen rijen met een minimumpercentage niet-NaN-waarden
#only keep rows with at least 70% non-NaN values df. dropna (thresh= 0.7 * len (df. columns ))
Methode 3: Bewaar alleen kolommen met een minimum aantal niet-NaN-waarden
#only keep columns with at least 6 non-NaN values df. dropna (thresh= 6 ,axis= 1 )
Methode 4: Behoud alleen kolommen met een minimumpercentage niet-NaN-waarden
#only keep columns with at least 70% non-NaN values df. dropna (thresh= 0.7 * len (df), axis= 1 )
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met de volgende panda’s DataFrame:
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
Voorbeeld 1: Bewaar alleen rijen met een minimum aantal niet-NaN-waarden
We kunnen de volgende syntaxis gebruiken om alleen rijen in het DataFrame te behouden die ten minste twee niet-NaN-waarden hebben:
#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
Merk op dat de rij op indexpositie 1 is verwijderd omdat deze slechts één niet-NaN-waarde in de hele rij had.
Voorbeeld 2: Bewaar alleen rijen met een minimumpercentage niet-NaN-waarden
We kunnen de volgende syntaxis gebruiken om alleen die rijen in het DataFrame te behouden die ten minste 70% niet-NaN-waarden hebben:
#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
Merk op dat de rijen op indexposities 1 en 7 zijn verwijderd omdat deze rijen niet minimaal 70% van de waarden als niet-NaN-waarden bevatten.
Voorbeeld 3: Bewaar alleen kolommen met een minimum aantal niet-NaN-waarden
We kunnen de volgende syntaxis gebruiken om alleen die kolommen in het DataFrame te behouden die ten minste zes niet-NaN-waarden hebben:
#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
Merk op dat de kolom ‘assisten’ is verwijderd omdat die kolom niet minstens 6 niet-NaN-waarden in de kolom bevatte.
Voorbeeld 4: Bewaar alleen kolommen met een minimumpercentage niet-NaN-waarden
We kunnen de volgende syntaxis gebruiken om alleen die kolommen in het DataFrame te behouden die ten minste 70% niet-NaN-waarden hebben:
#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
Merk op dat de kolom „ondersteuning“ is verwijderd omdat deze kolom niet ten minste 70% niet-NaN-waarden bevatte.
Opmerking : u kunt de volledige documentatie van de pandas dropna() -functie hier vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in panda’s kunt uitvoeren:
Panda’s: hoe de index opnieuw in te stellen na het gebruik van dropna()
Panda’s: dropna() gebruiken met specifieke kolommen
Panda’s: rijen verwijderen op basis van meerdere voorwaarden