# Mis on Pandas fillna() ja kuidas seda kasutada?

Python pandas `DataFrame.fillna()` funktsiooni kasutatakse **puuduvate väärtuste asendamiseks DataFrame’is**. See võib aidata lihtsustada andmete puhastamise protsesse või olla kasulikuks abivahendiks analüüside tegemisel.

## Mis on pandas `fillna()` süntaks?

Funktsioon `fillna()` võtab vastu **kuni viis parameetrit** ja on üles ehitatud järgmiselt:

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

### Olulised parameetrid `fillna()` jaoks

Funktsiooni `DataFrame.fillna()` käitumist saab reguleerida mitmesuguste parameetrite abil:

<table>
  <thead>
    <tr>
      <th><strong>Parameeter</strong></th>
      <th><strong>Kirjeldus</strong></th>
      <th><strong>Vaikimisi väärtus</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`value`</td>
      <td>Skaalarväärtus või sõnastik (või seeria), millega asendada NaN-id</td>
      <td>`None`</td>
    </tr>
    <tr>
      <td>`method`</td>
      <td>Määrab täitmismeetodi: edasi täitmine (`ffill`) või tagasi täitmine (`bfill`)</td>
      <td>`None`</td>
    </tr>
    <tr>
      <td>`axis`</td>
      <td>Määrab, millisel teljel operatsioon sooritatakse (0 või `index` ridade puhul, 1 või `columns` veergude puhul)</td>
      <td>0</td>
    </tr>
    <tr>
      <td>`inplace`</td>
      <td>Kui `True`, tehakse muudatused otse algses DataFrame’is.</td>
      <td>`False`</td>
    </tr>
    <tr>
      <td>`limit`</td>
      <td>Täisarv, mis piirab asendatavate NaN-väärtuste arvu.</td>
      <td>`None`</td>
    </tr>
  </tbody>
</table>

Note Pandas’i tulevastes versioonides **ei toetata tõenäoliselt enam** parameetrit `method`. Kui see juhtub, võite selle asemel kasutada parameetreid `obj.ffill()` või `obj.bfill()`, kuna need funktsioonid on sama mõjuga kui parameeter `method`.

## Kuidas kasutada Pandas `DataFrame.fillna()`

Funktsiooni Pandas `fillna()` saab kasutada mitmel erineval viisil:

### NaN-väärtuste asendamine kindla väärtusega

Esiteks loome DataFrame’i:

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

Andmestruktuur näeb välja järgmine:

```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 Pandas tõlgendatakse väärtust `None` andmestikes ja seeriates kui `NaN`.

Puuduvate väärtuste asendamiseks nullidega võite kasutada pandas `fillna()` funktsiooni:

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

Tulemuseks on, et iga NaN väärtus on asendatud 0-ga:

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

### Eesmise täitmise meetodi kasutamine `ffill`

Kui soovite NaN-väärtused asendada väärtusega, mis eelneb neile veerus, kus nad asuvad, võite edastada meetodi `ffill` parameetrina:

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

Selles näites on veergude A ja C NaN-väärtused täidetud sama veeru eelmiste väärtustega. Kuna veerus B ei olnud rea 0 jaoks eelmist väärtust, säilitatakse NaN-väärtus:

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

### Ridade tagurpidi täitmise meetodi `bfill` kasutamine

NaN-väärtused võib täita ka järgnevate väärtustega, lähtudes nende rea positsioonist. Selleks tuleb kasutada meetodit `bfill` ja määrata parameeter `axis` väärtuseks 1:

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

Tulemus näitab, et ridade 0 ja 2 NaN-väärtused on asendatud sama rea järgnevate väärtustega. Esimese rea NaN-väärtus jääb aga samaks, kuna see on selle rea viimane väärtus:

```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/et-ee/digitalguide/veebisaidid/veebiarendus/python-pandas-dataframe-fillna/](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/python-pandas-dataframe-fillna/) for AI/LLM consumption.