Ce este Pandas fillna() și cum se utilizează
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)pythonParametri 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
|
Î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)pythonDataFrame 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Î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)pythonRezultatul 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.0Utilizarea 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.0Utilizarea 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)pythonRezultatul 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