# Hva er Pandas fillna() og hvordan bruker man det?

Python- funksjonen pandas `DataFrame.fillna()` brukes til **å erstatte manglende verdier i en DataFrame**. Dette kan bidra til å forenkle datarengjøringsprosesser eller være et nyttig verktøy når du utfører analyser.

## Hva er syntaksen for pandas `fillna()`?

Funksjonen `fillna()` aksepterer **opptil fem parametere** og er strukturert som følger:

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

### Viktige parametere for `fillna()`

Funksjonen til `DataFrame.fillna()` kan justeres ved hjelp av ulike parametere:

<table>
  <thead>
    <tr>
      <th><strong>Parameter</strong></th>
      <th><strong>Beskrivelse</strong></th>
      <th><strong>Standardverdi</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`value`</td>
      <td>En skalærverdi eller en ordbok (eller serie) som skal erstatte NaN-er</td>
      <td>`None`</td>
    </tr>
    <tr>
      <td>`method`</td>
      <td>Angir fyllingsmetoden; fremoverfylling (`ffill`) eller bakoverfylling (`bfill`)</td>
      <td>`None`</td>
    </tr>
    <tr>
      <td>`axis`</td>
      <td>Bestemmer hvilken akse operasjonen skal utføres på (0 eller `index` for rader, 1 eller `columns` for kolonner)</td>
      <td>0</td>
    </tr>
    <tr>
      <td>`inplace`</td>
      <td>Hvis `True`, blir endringene gjort direkte i den opprinnelige DataFrame</td>
      <td>`False`</td>
    </tr>
    <tr>
      <td>`limit`</td>
      <td>Et heltall som begrenser antall NaN-verdier som skal erstattes.</td>
      <td>`None`</td>
    </tr>
  </tbody>
</table>

Note I fremtidige versjoner av Pandas vil parameteren `method` **sannsynligvis ikke lenger støttes**. Hvis dette skjer, kan du i stedet bruke `obj.ffill()` eller `obj.bfill()`, siden disse funksjonene har samme effekt som parameteren `method`.

## Hvordan bruke Pandas `DataFrame.fillna()`

Pandas `fillna()` -funksjonen kan brukes på flere forskjellige måter:

### Erstatte NaN-verdier med en fast verdi

Først skal vi opprette en DataFrame:

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

DataFrame ser slik ut:

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

Note I pandas tolkes verdien `None` i DataFrames og Series som `NaN`

For å erstatte de manglende verdiene med 0, kan du bruke pandas `fillna()` -funksjonen:

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

Resultatet er at alle NaN-verdier er erstattet med 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
```

### Bruk av fremoverfyllingsmetoden `ffill`

Hvis du vil fylle NaN-verdier med verdien som ligger rett før dem i kolonnen der de befinner seg, kan du overføre metoden `ffill` som parameter:

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

I dette eksemplet er NaN-verdiene i kolonne A og C fylt ut med de foregående verdiene i samme kolonne. Siden det ikke var noen foregående verdi i kolonne B for rad 0, beholdes NaN-verdien:

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

### Bruk av bakoverfyllingsmetoden `bfill` for rader

NaN-verdier kan også fylles med påfølgende verdier basert på deres radposisjon. For å gjøre dette må du bruke metoden `bfill` og sette parameteren `axis` til 1:

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

Resultatet viser at NaN-verdiene i rad 0 og 2 er erstattet av verdiene som følger etter dem i samme rad. NaN-verdien i første rad forblir imidlertid den samme, fordi den er den siste verdien i den raden:

```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/nb-no/digitalguide/nettsteder/webutvikling/python-pandas-dataframe-fillna/](https://www.ionos.com/nb-no/digitalguide/nettsteder/webutvikling/python-pandas-dataframe-fillna/) for AI/LLM consumption.