# Hoe gegevens in pandas opschonen met dropna()

De Python pandas `DataFrame.dropna()` 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:

```python
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False, ignore_index=False)
```

### 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:

<table>
  <thead>
    <tr>
      <th><strong>Parameter</strong></th>
      <th><strong>Beschrijving</strong></th>
      <th><strong>Standaardwaarde</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`axis`</td>
      <td>Bepaalt of rijen (0 of `index`) of kolommen (1 of `columns`) worden verwijderd</td>
      <td>0</td>
    </tr>
    <tr>
      <td>`how`</td>
      <td>Geeft aan of alle (`all`) of slechts enkele (`any`) waarden NaN moeten zijn.</td>
      <td>`any`</td>
    </tr>
    <tr>
      <td>`thresh`</td>
      <td>Geeft het minimumaantal niet-NaN-waarden aan dat een rij of kolom moet hebben om verwijdering te voorkomen; kan niet worden gecombineerd met `how`.</td>
      <td>optioneel</td>
    </tr>
    <tr>
      <td>`subset`</td>
      <td>Geeft aan welke rijen of kolommen als</td>
      <td>optioneel</td>
    </tr>
    <tr>
      <td>`inplace`</td>
      <td>Bepaalt of de bewerking wordt uitgevoerd op het oorspronkelijke DataFrame</td>
      <td>`False`</td>
    </tr>
    <tr>
      <td>`ignore_index`</td>
      <td>Als `True`, wordt de resterende as gelabeld van 0 tot n-1</td>
      <td>`False`</td>
    </tr>
  </tbody>
</table>

## 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:

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

Het DataFrame ziet er als volgt uit:

```none
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:

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

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

```none
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:

```python
## Remove all columns that contain at least one NaN value
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)
```

Kolom C is de enige kolom die overblijft, aangezien dit de enige kolom is die geen NaN-waarden bevat:

```none
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:

```python
## Only keeps rows that have 2 or more non-NaN values
df_thresh = df.dropna(thresh=2)
print(df_thresh)
```

Het uitvoeren van de code levert de volgende uitvoer op:

```none
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.

```python
## Removes all rows where column A contains a NaN value
df_subset = df.dropna(subset=['A'])
print(df_subset)
```

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:

```none
A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
3  4.0  8.0  12
```


This is a markdown version of: [https://www.ionos.com/nl-be/digitalguide/websites/webontwikkeling/python-pandas-dataframe-dropna/](https://www.ionos.com/nl-be/digitalguide/websites/webontwikkeling/python-pandas-dataframe-dropna/) for AI/LLM consumption.