Hoe gegevens in pandas opschonen met dropna()
De Python pandas DataFrame.dropna() -functie wordt gebruikt om alle rijen of kolommen met ontbrekende waarden (NaN) uit een DataFrame te verwijderen. Dit maakt het bijzonder cruciaal voor het voorbereiden en opschonen van gegevens.
Wat is de syntaxis voor pandas dropna()?
De functie dropna() accepteert maximaal vijf parameters. Dit is de syntaxis ervan:
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False, ignore_index=False)pythonBelangrijke parameters voor dropna()
Je kunt parameters gebruiken om het gedrag van de pandas DataFrame.dropna() -functie te beïnvloeden. Hier volgt een overzicht van de belangrijkste parameters:
| Parameter | Beschrijving | Standaardwaarde |
|---|---|---|
axis
|
Bepaalt of rijen (0 of index) of kolommen (1 of columns) worden verwijderd
|
0 |
how
|
Geeft aan of alle (all) of slechts enkele (any) waarden NaN moeten zijn.
|
any
|
thresh
|
Geeft het minimumaantal niet-NaN-waarden aan dat een rij of kolom moet hebben om verwijdering te voorkomen; kan niet worden gecombineerd met how.
|
optioneel |
subset
|
Geeft aan welke rijen of kolommen als | optioneel |
inplace
|
Bepaalt of de bewerking wordt uitgevoerd op het oorspronkelijke DataFrame | False
|
ignore_index
|
Als True, wordt de resterende as gelabeld van 0 tot n-1
|
False
|
Hoe pandas DataFrame.dropna() te gebruiken
Pandas dropna() wordt gebruikt om gegevens op te schonen voordat ze worden geanalyseerd. Het verwijderen van rijen of kolommen met ontbrekende waarden helpt om vertekeningen in statistische evaluaties te voorkomen. Aangezien ontbrekende waarden ook kunnen leiden tot problemen met datavisualisatie, is het gebruik van deze functie ook voordelig bij het maken van grafieken en rapporten.
Rijen met ontbrekende waarden verwijderen
In het volgende voorbeeld bekijken we een DataFrame met NaN-waarden:
import pandas as pd
import numpy as np
# Creating a DataFrame with sample data
data = {
'A': [1, 2, np.nan, 4],
'B': [5, np.nan, np.nan, 8],
'C': [9, 10, 11, 12]
}
df = pd.DataFrame(data)
print(df)pythonHet DataFrame ziet er als volgt uit:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
2 NaN NaN 11
3 4.0 8.0 12Vervolgens gaan we de functie pandas dropna() toepassen:
## Remove all rows that contain at least one NaN value
df_cleaned = df.dropna()
print(df_cleaned)pythonHet uitvoeren van de bovenstaande code levert het volgende resultaat op:
A B C
0 1.0 5.0 9
3 4.0 8.0 12Aangezien alle andere rijen NaN-waarden bevatten, blijven alleen de nulde en derde rij over.
Kolommen met ontbrekende waarden verwijderen
Op dezelfde manier kunt u kolommen met ontbrekende waarden verwijderen door de parameter axis op 1 in te stellen:
## Remove all columns that contain at least one NaN value
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)pythonKolom C is de enige kolom die overblijft, aangezien dit de enige kolom is die geen NaN-waarden bevat:
C
0 9
1 10
2 11
3 12Met behulp van thresh
Als u rijen wilt verwijderen die minder dan twee niet-NaN-waarden bevatten, kunt u de parameter thresh gebruiken:
## Only keeps rows that have 2 or more non-NaN values
df_thresh = df.dropna(thresh=2)
print(df_thresh)pythonHet uitvoeren van de code levert de volgende uitvoer op:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
3 4.0 8.0 12Rij 1 wordt niet uit de uitvoer verwijderd omdat deze twee niet-NaN-waarden bevat (2,0 en 10).
Met behulp van subset
Met parameter subset kunt u de kolommen specificeren waarin het programma naar ontbrekende waarden moet zoeken. Alleen rijen die ontbrekende waarden bevatten in de opgegeven kolommen worden verwijderd.
## Removes all rows where column A contains a NaN value
df_subset = df.dropna(subset=['A'])
print(df_subset)pythonHier wordt alleen de tweede rij verwijderd. De NaN-waarde in de eerste rij wordt genegeerd vanwege de subsetparameter, die alleen rekening houdt met kolom A:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
3 4.0 8.0 12