# Kaj je Pandas fillna() in kako ga uporabljati

Funkcija Python pandas `DataFrame.fillna()` se uporablja za **nadomestitev manjkajočih vrednosti v DataFrame**. To lahko pomaga poenostaviti procese čiščenja podatkov ali pa je koristno orodje pri izvajanju analiz.

## Kakšna je sintaksa za pandas `fillna()`?

Funkcija `fillna()` sprejme **do pet parametrov** in je strukturirana na naslednji način:

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

### Pomembni parametri za `fillna()`

Delovanje funkcije `DataFrame.fillna()` je mogoče prilagoditi z različnimi parametri:

<table>
  <thead>
    <tr>
      <th><strong>Parameter</strong></th>
      <th><strong>Opis</strong></th>
      <th><strong>Privzeta vrednost</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`value`</td>
      <td>Skalarna vrednost ali slovar (ali serija) za zamenjavo vrednosti NaN</td>
      <td>`None`</td>
    </tr>
    <tr>
      <td>`method`</td>
      <td>Določa metodo polnjenja; polnjenje naprej (`ffill`) ali polnjenje nazaj (`bfill`)</td>
      <td>`None`</td>
    </tr>
    <tr>
      <td>`axis`</td>
      <td>Določa, na kateri osi se izvede operacija (0 ali `index` za vrstice, 1 ali `columns` za stolpce)</td>
      <td>0</td>
    </tr>
    <tr>
      <td>`inplace`</td>
      <td>Če je `True`, se spremembe izvedejo neposredno v izvirnem DataFrame.</td>
      <td>`False`</td>
    </tr>
    <tr>
      <td>`limit`</td>
      <td>Celo število, ki omejuje število vrednosti NaN, ki jih je treba zamenjati.</td>
      <td>`None`</td>
    </tr>
  </tbody>
</table>

Note V prihodnjih različicah Pandas parameter `method` **verjetno ne bo več podprt**. Če se to zgodi, lahko namesto njega uporabite `obj.ffill()` ali `obj.bfill()`, saj imajo te funkcije enak učinek kot parameter `method`.

## Kako uporabljati Pandas `DataFrame.fillna()`

Funkcijo Pandas `fillna()` je mogoče uporabiti na več različnih načinov:

### Zamenjava vrednosti NaN s fiksno vrednostjo

Najprej ustvarimo 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 izgleda takole:

```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 V pandah se vrednost `None` v DataFrames in Series interpretira kot `NaN`

Da bi manjkajoče vrednosti nadomestili z 0, lahko uporabite funkcijo pandas `fillna()`:

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

Rezultat je, da je bila vsaka vrednost NaN nadomeščena z 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
```

### Uporaba metode predhodnega polnjenja `ffill`

Če želite vrednosti NaN nadomestiti z vrednostjo, ki jim neposredno predhodi v stolpcu, v katerem se nahajajo, lahko kot parameter prenesete metodo `ffill`:

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

V tem primeru so bile vrednosti NaN v stolpcih A in C zapolnjene s predhodnimi vrednostmi v istem stolpcu. Ker v stolpcu B za vrstico 0 ni bilo predhodne vrednosti, je vrednost NaN ohranjena:

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

### Uporaba metode nazaj polnjenja `bfill` za vrstice

Vrednosti NaN se lahko tudi izpolnijo z naslednjimi vrednostmi na podlagi njihovega položaja v vrstici. Za to morate uporabiti metodo `bfill` in nastaviti parameter `axis` na 1:

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

Rezultat kaže, da so bile vrednosti NaN v vrsticah 0 in 2 nadomeščene z vrednostmi, ki jim sledijo v isti vrstici. Vrednost NaN v prvi vrstici pa ostane enaka, ker je zadnja vrednost v tej vrstici:

```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/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/python-pandas-dataframe-fillna/](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/python-pandas-dataframe-fillna/) for AI/LLM consumption.