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