Python pandas DataFrame.fillna() funkcija naudojama trūks­ta­moms reikšmėms DataFrame pakeisti. Tai gali padėti su­pa­pras­tin­ti 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:

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

Svarbūs pa­ra­met­rai fillna()

DataFrame.fillna() funkcijos veikimą galima re­gu­liuo­ti naudojant įvairius pa­ra­met­rus:

Pa­ra­met­ras Aprašymas Nu­ma­ty­ta­sis vertė
value Ska­lia­ri­nė reikšmė arba žodynas (arba serija), kuria pa­kei­čia­mi NaN None
method Nurodo užpildymo metodą: už­pil­dy­mas į priekį (ffill) arba už­pil­dy­mas atgal (bfill) None
axis Nustato, kuria ašimi atlikti operaciją (0 arba index eilutėms, 1 arba columns stul­pe­liams) 0
inplace Jei True, pa­kei­ti­mai atliekami tie­sio­giai ori­gi­na­lio­je duomenų rėmoje. False
limit Sveikasis skaičius, kuris riboja keistinų NaN verčių skaičių. None
Note

Būsimose „Pandas“ versijose method pa­ra­met­ras grei­čiau­siai nebus pa­lai­ko­mas. Jei taip atsitiks, galite naudoti obj.ffill() arba obj.bfill() pa­ra­met­rus, nes šios funkcijos veikia taip pat kaip method pa­ra­met­ras.

Kaip naudoti Pandas DataFrame.fillna()

Funkcija „Pandas fillna() gali būti naudojama keliais skir­tin­gais būdais:

NaN verčių pa­kei­ti­mas fiksuota verte

Pir­miau­sia sukursime duomenų rėmelį (DataFrame):

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

Duomenų rėmelis atrodo taip:

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 Da­taF­ra­mes ir Series reikšmė None in­ter­pre­tuo­ja­ma kaip NaN.

Norėdami pakeisti trūks­ta­mas reikšmes 0, galite naudoti pandas fillna() funkciją:

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

Re­zul­ta­tas yra toks, kad kiekviena NaN reikšmė buvo pakeista 0:

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š­anks­ti­nio užpildymo metodą ffill

Jei norite užpildyti NaN reikšmes reikšme, kuri yra tie­sio­giai prieš jas stul­pe­ly­je, kuriame jos yra, galite perduoti ffill metodą kaip parametrą:

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

Šiame pavyzdyje A ir C stulpelių NaN reikšmės buvo už­pil­dy­tos anks­tes­nė­mis to paties stulpelio reikš­mė­mis. Kadangi B stul­pe­ly­je nebuvo anks­tes­nės reikšmės eilutėje 0, NaN reikšmė išliko:

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ž­pil­dy­tos pas­kes­nė­mis reikš­mė­mis, remiantis jų eilutės pozicija. Norėdami tai padaryti, turite naudoti bfill metodą ir nustatyti axis parametrą į 1:

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

Re­zul­ta­tas 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:

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
Go to Main Menu