# Wat is Pandas fillna() en hoe gebruik je het?

De Python-functie pandas `DataFrame.fillna()` wordt gebruikt om **ontbrekende waarden in een DataFrame te vervangen**. Dit kan helpen om gegevensopschoningsprocessen te vereenvoudigen of een nuttig hulpmiddel zijn bij het uitvoeren van analyses.

## Wat is de syntaxis voor pandas `fillna()`?

De functie `fillna()` accepteert **maximaal vijf parameters** en is als volgt opgebouwd:

```python
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)
```

### Belangrijke parameters voor `fillna()`

Het gedrag van de `DataFrame.fillna()` -functie kan worden aangepast met behulp van verschillende parameters:

<table>
  <thead>
    <tr>
      <th><strong>Parameter</strong></th>
      <th><strong>Beschrijving</strong></th>
      <th><strong>Standaardwaarde</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`value`</td>
      <td>Een scalaire waarde of een woordenboek (of reeks) om NaN’s te vervangen</td>
      <td>`None`</td>
    </tr>
    <tr>
      <td>`method`</td>
      <td>Specificeert de vulmethode; voorwaarts vullen (`ffill`) of achterwaarts vullen (`bfill`)</td>
      <td>`None`</td>
    </tr>
    <tr>
      <td>`axis`</td>
      <td>Bepaalt op welke as de bewerking moet worden uitgevoerd (0 of `index` voor rijen, 1 of `columns` voor kolommen)</td>
      <td>0</td>
    </tr>
    <tr>
      <td>`inplace`</td>
      <td>Als `True`, worden de wijzigingen rechtstreeks in het oorspronkelijke DataFrame aangebracht.</td>
      <td>`False`</td>
    </tr>
    <tr>
      <td>`limit`</td>
      <td>Een geheel getal dat het aantal te vervangen NaN-waarden beperkt.</td>
      <td>`None`</td>
    </tr>
  </tbody>
</table>

Opmerking In toekomstige versies van Pandas zal de parameter `method` **waarschijnlijk niet langer worden ondersteund**. Als dit gebeurt, kunt u in plaats daarvan vertrouwen op `obj.ffill()` of `obj.bfill()`, aangezien deze functies hetzelfde effect hebben als de parameter `method`.

## Hoe Pandas `DataFrame.fillna()` te gebruiken

De functie Pandas `fillna()` kan op verschillende manieren worden gebruikt:

### NaN-waarden vervangen door een vaste waarde

Laten we eerst een DataFrame maken:

```python
import pandas as pd
# Sample DataFrame with different values
data = {
    'A': [1, 2, None, 4],
    'B': [None, 2, 3, 4],
    'C': [1, None, 3, 4]
}
df = pd.DataFrame(data)
print(df)
```

Het DataFrame ziet er als volgt uit:

```none
A    B    C
0  1.0  NaN  1.0
1  2.0  2.0  NaN
2  NaN  3.0  3.0
3  4.0  4.0  4.0
```

Opmerking In pandas wordt de waarde `None` in DataFrames en Series geïnterpreteerd als `NaN`.

Om de ontbrekende waarden te vervangen door 0, kunt u de pandas `fillna()` -functie gebruiken:

```python
# Replacing missing values with zero
df_filled = df.fillna(0)
print(df_filled)
```

Het resultaat is dat elke NaN-waarde is vervangen door 0:

```none
A    B    C
0  1.0  0.0  1.0
1  2.0  2.0  0.0
2  0.0  3.0  3.0
3  4.0  4.0  4.0
```

### Met behulp van de voorwaartse vulmethode `ffill`

Als u NaN-waarden wilt invullen met de waarde die direct voor hen staat in de kolom waarin ze zich bevinden, kunt u de methode `ffill` als parameter doorgeven:

```python
# Replace all NaN values with the value that precedes them
df_ffill = df.fillna(method='ffill')
print(df_ffill)
```

In dit voorbeeld zijn de NaN-waarden in kolommen A en C opgevuld met de voorgaande waarden in dezelfde kolom. Aangezien er geen voorgaande waarde in kolom B voor rij 0 was, blijft de NaN-waarde behouden:

```none
A    B    C
0  1.0  NaN  1.0
1  2.0  2.0  1.0
2  2.0  3.0  3.0
3  4.0  4.0  4.0
```

### Met behulp van de achterwaartse vulmethode `bfill` voor rijen

NaN-waarden kunnen ook worden opgevuld met opeenvolgende waarden op basis van hun rijpositie. Hiervoor moet u de methode `bfill` gebruiken en de parameter `axis` instellen op 1:

```python
df_bfill = df.fillna(method='bfill', axis=1)
print(df_bfill)
```

Het resultaat laat zien dat de NaN-waarden in rij 0 en 2 zijn vervangen door de waarden die daarop volgen in dezelfde rij. De NaN-waarde in de eerste rij blijft echter hetzelfde, omdat dit de laatste waarde in die rij is:

```none
A    B    C
0  1.0  1.0  1.0
1  2.0  2.0  NaN
2  3.0  3.0  3.0
3  4.0  4.0  4.0
```


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