A Python pandas DataFrame.fillna() függvényt a DataFrame hiányzó értékeinek pótlására használják. Ez segíthet egyszerűsíteni az adat tisztítási folyamatokat, vagy hasznos eszköz lehet elemzések elvégzésekor.

Mi a pandas fillna() szintaxisa?

A fillna() függvény legfeljebb öt paramétert fogad el, és a következőképpen épül fel:

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

Fontos paraméterek a fillna()

A DataFrame.fillna() funkció viselkedése különböző paraméterek segítségével állítható be:

Paraméter Leírás Alapértelmezett érték
value NaN-értékek helyettesítésére szolgáló skalár érték vagy szótár (vagy sorozat) None
method Meghatározza a kitöltési módszert: előre kitöltés (ffill) vagy visszafelé kitöltés (bfill) None
axis Meghatározza, melyik tengelyen kell végrehajtani a műveletet (0 vagy index a sorok esetében, 1 vagy columns az oszlopok esetében) 0
inplace Ha True, a módosítások közvetlenül az eredeti DataFrame-ben történnek. False
limit Egy egész szám, amely korlátozza a helyettesítendő NaN értékek számát. None
Megjegyzés

A Pandas jövőbeli verzióiban a method paraméter valószínűleg már nem lesz támogatott. Ha ez bekövetkezik, akkor obj.ffill() vagy obj.bfill() paraméterre támaszkodhat, mivel ezek a funkciók ugyanazt a hatást gyakorolják, mint a method paraméter.

A Pandas DataFrame.fillna() használata

A Pandas fillna() függvény többféle módon használható:

A NaN értékek helyettesítése egy fix értékkel

Először hozzunk létre egy DataFrame-et:

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

A DataFrame így néz ki:

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
Megjegyzés

A pandákban a DataFrames és Series None értéke NaN-ként értelmeződik.

A hiányzó értékeket 0-val helyettesíteni a pandas fillna() függvénnyel lehet:

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

Az eredmény az, hogy minden NaN érték 0-ra lett cserélve:

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

Az előre kitöltési módszer használata ffill

Ha a NaN értékeket az oszlopban közvetlenül előttük álló értékkel szeretné kitölteni, akkor a ffill metódust paraméterként adhatja meg:

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

Ebben a példában az A és C oszlopok NaN értékeit az ugyanazon oszlop előző értékeivel töltöttük ki. Mivel a B oszlopban a 0. sorhoz nem volt előző érték, a NaN érték megmaradt:

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

A sorokhoz a visszafelé töltési módszer bfill használata

A NaN értékeket a sorpozíciójuk alapján követő értékekkel is kitölthetjük. Ehhez a bfill metódust kell használni, és a axis paramétert 1-re kell állítani:

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

Az eredmény azt mutatja, hogy a 0. és 2. sorban található NaN értékeket az ugyanazon sorban utánuk következő értékek váltották fel. Az első sorban található NaN érték azonban változatlan maradt, mivel ez az adott sor utolsó értéke:

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
Ugrás a főmenübe