Funcția Python pandas DataFrame.fillna() este utilizată pentru a înlocui valorile lipsă dintr-un DataFrame. Aceasta poate contribui la simplificarea proceselor de curățare a datelor sau poate fi un instrument util în efectuarea analizelor.

Care este sintaxa pentru pandas fillna()?

Funcția fillna() acceptă până la cinci parametri și este structurată după cum urmează:

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

Parametri importanți pentru fillna()

Comportamentul funcției DataFrame.fillna() poate fi ajustat folosind diverși parametri:

Parametru Descriere Valoare implicită
value O valoare scalară sau un dicționar (sau serie) pentru a înlocui NaN-urile None
method Specifică metoda de completare; completare înainte (ffill) sau completare înapoi (bfill) None
axis Determină pe care axă se va efectua operațiunea (0 sau index pentru rânduri, 1 sau columns pentru coloane) 0
inplace Dacă este True, modificările sunt efectuate direct în DataFrame original. False
limit Un număr întreg care limitează numărul de valori NaN care urmează să fie înlocuite. None
Notă

În versiunile viitoare ale Pandas, parametrul methodprobabil nu va mai fi acceptat. Dacă acest lucru se va întâmpla, puteți folosi în schimb parametrul obj.ffill() sau obj.bfill(), deoarece aceste funcții au același efect ca și parametrul method.

Cum se utilizează Pandas DataFrame.fillna()

Funcția Pandas fillna() poate fi utilizată în mai multe moduri diferite:

Înlocuirea valorilor NaN cu o valoare fixă

Mai întâi, să creăm un 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 arată astfel:

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
Notă

În pandas, valoarea None din DataFrames și Series este interpretată ca NaN.

Pentru a înlocui valorile lipsă cu 0, puteți utiliza funcția pandas fillna():

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

Rezultatul este că fiecare valoare NaN a fost înlocuită cu 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

Utilizarea metodei de umplere înainte ffill

Dacă doriți să completați valorile NaN cu valoarea care le precede direct în coloana în care se află, puteți transmite metoda ffill ca parametru:

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

În acest exemplu, valorile NaN din coloanele A și C au fost completate cu valorile precedente din aceeași coloană. Deoarece nu exista nicio valoare precedentă în coloana B pentru rândul 0, valoarea NaN este păstrată:

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

Utilizarea metodei de completare inversă bfill pentru rânduri

Valorile NaN pot fi, de asemenea, completate cu valori succesive în funcție de poziția lor în rând. Pentru a face acest lucru, trebuie să utilizați metoda bfill și să setați parametrul axis la 1:

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

Rezultatul arată că valorile NaN din rândurile 0 și 2 au fost înlocuite cu valorile care le urmează în același rând. Valoarea NaN din primul rând rămâne însă neschimbată, deoarece este ultima valoare din acel rând:

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
Mergi la meniul principal