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)
python

Belangrijke 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)
python

Het 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  12

Vervolgens gaan we de functie pandas dropna() toepassen:

## Remove all rows that contain at least one NaN value
df_cleaned = df.dropna()
print(df_cleaned)
python

Het uitvoeren van de bovenstaande code levert het volgende resultaat op:

A    B  C
0  1.0  5.0  9
3  4.0  8.0 12

Aangezien 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)
python

Kolom 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  12

Met 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)
python

Het 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  12

Rij 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)
python

Hier 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
Ga naar hoofdmenu