Funkcija Python pandas DataFrame.fillna() se uporablja za na­do­me­sti­tev manj­ka­jo­čih vrednosti v DataFrame. To lahko pomaga po­e­no­sta­vi­ti procese čiščenja podatkov ali pa je koristno orodje pri izvajanju analiz.

Kakšna je sintaksa za pandas fillna()?

Funkcija fillna() sprejme do pet pa­ra­me­trov in je struk­tu­ri­ra­na na naslednji način:

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

Pomembni parametri za fillna()

Delovanje funkcije DataFrame.fillna() je mogoče pri­la­go­di­ti z raz­lič­ni­mi parametri:

Parameter Opis Privzeta vrednost
value Skalarna vrednost ali slovar (ali serija) za zamenjavo vrednosti NaN None
method Določa metodo polnjenja; polnjenje naprej (ffill) ali polnjenje nazaj (bfill) None
axis Določa, na kateri osi se izvede operacija (0 ali index za vrstice, 1 ali columns za stolpce) 0
inplace Če je True, se spremembe izvedejo ne­po­sre­dno v izvirnem DataFrame. False
limit Celo število, ki omejuje število vrednosti NaN, ki jih je treba zamenjati. None
Note

V pri­ho­dnjih raz­li­či­cah 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 upo­ra­blja­ti Pandas DataFrame.fillna()

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

Zamenjava vrednosti NaN s fiksno vre­dno­stjo

Najprej ustvarimo 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

DataFrame izgleda takole:

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 Da­ta­Fra­mes in Series in­ter­pre­ti­ra kot NaN

Da bi manj­ka­jo­če vrednosti na­do­me­sti­li z 0, lahko uporabite funkcijo pandas fillna():

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

Rezultat je, da je bila vsaka vrednost NaN na­do­me­šče­na z 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

Uporaba metode pred­ho­dne­ga polnjenja ffill

Če želite vrednosti NaN na­do­me­sti­ti z vre­dno­stjo, ki jim ne­po­sre­dno predhodi v stolpcu, v katerem se nahajajo, lahko kot parameter prenesete metodo ffill:

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

V tem primeru so bile vrednosti NaN v stolpcih A in C za­pol­nje­ne s pred­ho­dni­mi vre­dnost­mi v istem stolpcu. Ker v stolpcu B za vrstico 0 ni bilo predhodne vrednosti, je vrednost NaN ohranjena:

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 na­sle­dnji­mi vre­dnost­mi na podlagi njihovega položaja v vrstici. Za to morate uporabiti metodo bfill in nastaviti parameter axis na 1:

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

Rezultat kaže, da so bile vrednosti NaN v vrsticah 0 in 2 na­do­me­šče­ne z vre­dnost­mi, ki jim sledijo v isti vrstici. Vrednost NaN v prvi vrstici pa ostane enaka, ker je zadnja vrednost v tej vrstici:

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