Kaj je Pandas fillna() in kako ga uporabljati
Funkcija Python pandas DataFrame.fillna() se uporablja za nadomestitev manjkajočih vrednosti v DataFrame. To lahko pomaga poenostaviti procese čiščenja podatkov ali pa je koristno orodje pri izvajanju analiz.
Kakšna je sintaksa za pandas fillna()?
Funkcija fillna() sprejme do pet parametrov in je strukturirana na naslednji način:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)pythonPomembni parametri za fillna()
Delovanje funkcije DataFrame.fillna() je mogoče prilagoditi z različnimi 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 neposredno v izvirnem DataFrame.
|
False
|
limit
|
Celo število, ki omejuje število vrednosti NaN, ki jih je treba zamenjati. | None
|
V prihodnjih različicah 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 uporabljati Pandas DataFrame.fillna()
Funkcijo Pandas fillna() je mogoče uporabiti na več različnih načinov:
Zamenjava vrednosti NaN s fiksno vrednostjo
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)pythonDataFrame 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.0V pandah se vrednost None v DataFrames in Series interpretira kot NaN
Da bi manjkajoče vrednosti nadomestili z 0, lahko uporabite funkcijo pandas fillna():
# Replacing missing values with zero
df_filled = df.fillna(0)
print(df_filled)pythonRezultat je, da je bila vsaka vrednost NaN nadomeščena 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.0Uporaba metode predhodnega polnjenja ffill
Če želite vrednosti NaN nadomestiti z vrednostjo, ki jim neposredno 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)pythonV tem primeru so bile vrednosti NaN v stolpcih A in C zapolnjene s predhodnimi vrednostmi 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.0Uporaba metode nazaj polnjenja bfill za vrstice
Vrednosti NaN se lahko tudi izpolnijo z naslednjimi vrednostmi 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)pythonRezultat kaže, da so bile vrednosti NaN v vrsticah 0 in 2 nadomeščene z vrednostmi, 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