Mis on Pandas fillna() ja kuidas seda kasutada?
Python pandas DataFrame.fillna() funktsiooni kasutatakse puuduvate väärtuste asendamiseks DataFrame’is. See võib aidata lihtsustada andmete puhastamise protsesse või olla kasulikuks abivahendiks analüüside tegemisel.
Mis on pandas fillna() süntaks?
Funktsioon fillna() võtab vastu kuni viis parameetrit ja on üles ehitatud järgmiselt:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)pythonOlulised parameetrid fillna() jaoks
Funktsiooni DataFrame.fillna() käitumist saab reguleerida mitmesuguste parameetrite abil:
| Parameeter | Kirjeldus | Vaikimisi väärtus |
|---|---|---|
value
|
Skaalarväärtus või sõnastik (või seeria), millega asendada NaN-id | None
|
method
|
Määrab täitmismeetodi: edasi täitmine (ffill) või tagasi täitmine (bfill)
|
None
|
axis
|
Määrab, millisel teljel operatsioon sooritatakse (0 või index ridade puhul, 1 või columns veergude puhul)
|
0 |
inplace
|
Kui True, tehakse muudatused otse algses DataFrame’is.
|
False
|
limit
|
Täisarv, mis piirab asendatavate NaN-väärtuste arvu. | None
|
Pandas’i tulevastes versioonides ei toetata tõenäoliselt enam parameetrit method. Kui see juhtub, võite selle asemel kasutada parameetreid obj.ffill() või obj.bfill(), kuna need funktsioonid on sama mõjuga kui parameeter method.
Kuidas kasutada Pandas DataFrame.fillna()
Funktsiooni Pandas fillna() saab kasutada mitmel erineval viisil:
NaN-väärtuste asendamine kindla väärtusega
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)pythonAndmestruktuur 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.0Pandas tõlgendatakse väärtust None andmestikes ja seeriates kui NaN.
Puuduvate väärtuste asendamiseks nullidega võite kasutada pandas fillna() funktsiooni:
# Replacing missing values with zero
df_filled = df.fillna(0)
print(df_filled)pythonTulemuseks 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.0Eesmise täitmise meetodi kasutamine ffill
Kui soovite NaN-väärtused asendada väärtusega, mis eelneb neile veerus, kus nad asuvad, võite edastada meetodi ffill parameetrina:
# Replace all NaN values with the value that precedes them
df_ffill = df.fillna(method='ffill')
print(df_ffill)pythonSelles näites on veergude A ja C NaN-väärtused täidetud sama veeru eelmiste väärtustega. Kuna veerus B ei olnud rea 0 jaoks eelmist väärtust, säilitatakse 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.0Ridade tagurpidi täitmise meetodi bfill kasutamine
NaN-väärtused võib täita ka järgnevate väärtustega, lähtudes nende rea positsioonist. Selleks tuleb kasutada meetodit bfill ja määrata parameeter axis väärtuseks 1:
df_bfill = df.fillna(method='bfill', axis=1)
print(df_bfill)pythonTulemus näitab, et ridade 0 ja 2 NaN-väärtused on asendatud sama rea järgnevate väärtustega. 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