Python pandas DataFrame.fillna() funkt­siooni ka­su­ta­takse puuduvate väärtuste asen­da­miseks DataFrame’is. See võib aidata liht­sus­tada andmete pu­has­ta­mise protsesse või olla ka­su­likuks abi­va­hen­diks ana­lüü­side tegemisel.

Mis on pandas fillna() süntaks?

Funkt­sioon fillna() võtab vastu kuni viis pa­ra­meet­rit ja on üles ehitatud järg­mi­selt:

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

Olulised pa­ra­meet­rid fillna() jaoks

Funkt­siooni DataFrame.fillna() käitumist saab re­gu­lee­rida mit­me­su­guste pa­ra­meet­rite abil:

Pa­ra­mee­ter Kirjeldus Vaikimisi väärtus
value Skaa­l­arväär­tus või sõnastik (või seeria), millega asendada NaN-id None
method Määrab täit­mis­mee­todi: edasi täitmine (ffill) või tagasi täitmine (bfill) None
axis Määrab, millisel teljel ope­rat­sioon soo­ri­ta­takse (0 või index ridade puhul, 1 või columns veergude puhul) 0
inplace Kui True, tehakse muu­da­tu­sed otse algses DataFrame’is. False
limit Täisarv, mis piirab asen­da­ta­vate NaN-väärtuste arvu. None
Note

Pandas’i tu­le­vas­tes ver­sioo­ni­des ei toetata tõe­näo­li­selt enam pa­ra­meet­rit method. Kui see juhtub, võite selle asemel kasutada pa­ra­meetreid obj.ffill() või obj.bfill(), kuna need funkt­sioo­nid on sama mõjuga kui pa­ra­mee­ter method.

Kuidas kasutada Pandas DataFrame.fillna()

Funkt­siooni Pandas fillna() saab kasutada mitmel erineval viisil:

NaN-väärtuste asen­da­mine kindla väär­tu­sega

Esiteks loome DataFrame’i:

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

And­me­st­ruk­tuur näeb välja järgmine:

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

Pandas tõl­gen­da­takse väärtust None and­mes­ti­kes ja seeriates kui NaN.

Puuduvate väärtuste asen­da­miseks nullidega võite kasutada pandas fillna() funkt­siooni:

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

Tu­le­mu­seks on, et iga NaN väärtus on asendatud 0-ga:

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

Eesmise täitmise meetodi ka­su­ta­mine ffill

Kui soovite NaN-väärtused asendada väär­tu­sega, mis eelneb neile veerus, kus nad asuvad, võite edastada meetodi ffill pa­ra­meet­rina:

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

Selles näites on veergude A ja C NaN-väärtused täidetud sama veeru eelmiste väär­tus­tega. Kuna veerus B ei olnud rea 0 jaoks eelmist väärtust, säi­li­ta­takse NaN-väärtus:

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

Ridade tagurpidi täitmise meetodi bfill ka­su­ta­mine

NaN-väärtused võib täita ka järg­ne­vate väär­tus­tega, lähtudes nende rea po­sit­sioo­nist. Selleks tuleb kasutada meetodit bfill ja määrata pa­ra­mee­ter axis väär­tu­seks 1:

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

Tulemus näitab, et ridade 0 ja 2 NaN-väärtused on asendatud sama rea järg­ne­vate väär­tus­tega. Esimese rea NaN-väärtus jääb aga samaks, kuna see on selle rea viimane väärtus:

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