# Kas yra Pandas fillna() ir kaip ją naudoti

Python pandas `DataFrame.fillna()` funkcija naudojama **trūkstamoms reikšmėms DataFrame pakeisti**. Tai gali padėti supaprastinti duomenų valymo procesus arba būti naudinga priemonė atliekant analizę.

## Kokia yra pandas `fillna()` sintaksė?

`fillna()` funkcija priima **iki penkių parametrų** ir yra sudaryta taip:

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

### Svarbūs parametrai `fillna()`

`DataFrame.fillna()` funkcijos veikimą galima reguliuoti naudojant įvairius parametrus:

<table>
  <thead>
    <tr>
      <th><strong>Parametras</strong></th>
      <th><strong>Aprašymas</strong></th>
      <th><strong>Numatytasis vertė</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`value`</td>
      <td>Skaliarinė reikšmė arba žodynas (arba serija), kuria pakeičiami NaN</td>
      <td>`None`</td>
    </tr>
    <tr>
      <td>`method`</td>
      <td>Nurodo užpildymo metodą: užpildymas į priekį (`ffill`) arba užpildymas atgal (`bfill`)</td>
      <td>`None`</td>
    </tr>
    <tr>
      <td>`axis`</td>
      <td>Nustato, kuria ašimi atlikti operaciją (0 arba `index` eilutėms, 1 arba `columns` stulpeliams)</td>
      <td>0</td>
    </tr>
    <tr>
      <td>`inplace`</td>
      <td>Jei `True`, pakeitimai atliekami tiesiogiai originalioje duomenų rėmoje.</td>
      <td>`False`</td>
    </tr>
    <tr>
      <td>`limit`</td>
      <td>Sveikasis skaičius, kuris riboja keistinų NaN verčių skaičių.</td>
      <td>`None`</td>
    </tr>
  </tbody>
</table>

Note Būsimose „Pandas“ versijose `method` parametras **greičiausiai nebus palaikomas**. Jei taip atsitiks, galite naudoti `obj.ffill()` arba `obj.bfill()` parametrus, nes šios funkcijos veikia taip pat kaip `method` parametras.

## Kaip naudoti Pandas `DataFrame.fillna()`

Funkcija „Pandas `fillna()` gali būti naudojama keliais skirtingais būdais:

### NaN verčių pakeitimas fiksuota verte

Pirmiausia sukursime duomenų rėmelį (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)
```

Duomenų rėmelis atrodo taip:

```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 Pandose DataFrames ir Series reikšmė `None` interpretuojama kaip `NaN`.

Norėdami pakeisti trūkstamas reikšmes 0, galite naudoti pandas `fillna()` funkciją:

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

Rezultatas yra toks, kad kiekviena NaN reikšmė buvo pakeista 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
```

### Naudojant išankstinio užpildymo metodą `ffill`

Jei norite užpildyti NaN reikšmes reikšme, kuri yra tiesiogiai prieš jas stulpelyje, kuriame jos yra, galite perduoti `ffill` metodą kaip parametrą:

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

Šiame pavyzdyje A ir C stulpelių NaN reikšmės buvo užpildytos ankstesnėmis to paties stulpelio reikšmėmis. Kadangi B stulpelyje nebuvo ankstesnės reikšmės eilutėje 0, NaN reikšmė išliko:

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

### Naudojant atgalinio užpildymo metodą `bfill` eilutėms

NaN reikšmės taip pat gali būti užpildytos paskesnėmis reikšmėmis, remiantis jų eilutės pozicija. Norėdami tai padaryti, turite naudoti `bfill` metodą ir nustatyti `axis` parametrą į 1:

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

Rezultatas rodo, kad NaN reikšmės 0 ir 2 eilutėse buvo pakeistos reikšmėmis, kurios eina po jų toje pačioje eilutėje. Tačiau NaN reikšmė pirmoje eilutėje lieka ta pati, nes tai yra paskutinė reikšmė toje eilutėje:

```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/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/python-pandas-dataframe-fillna/](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/python-pandas-dataframe-fillna/) for AI/LLM consumption.