Čo je Pandas fillna() a ako ho používať
Funkcia Python pandas DataFrame.fillna() sa používa na nahradenie chýbajúcich hodnôt v DataFrame. To môže pomôcť zjednodušiť procesy čistenia údajov alebo byť užitočným nástrojom pri vykonávaní analýz.
Aká je syntax pre pandas fillna()?
Funkcia fillna() prijíma až päť parametrov a má nasledujúcu štruktúru:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)pythonDôležité parametre pre fillna()
Správanie funkcie DataFrame.fillna() možno nastaviť pomocou rôznych parametrov:
| Parameter | Popis | Predvolená hodnota |
|---|---|---|
value
|
Skalarová hodnota alebo slovník (alebo séria) na nahradenie hodnôt NaN | None
|
method
|
Určuje metódu vyplnenia; vyplnenie dopredu (ffill) alebo vyplnenie dozadu (bfill)
|
None
|
axis
|
Určuje, na ktorej osi sa má operácia vykonať (0 alebo index pre riadky, 1 alebo columns pre stĺpce)
|
0 |
inplace
|
Ak je hodnota True, zmeny sa vykonajú priamo v pôvodnom DataFrame.
|
False
|
limit
|
Celé číslo, ktoré obmedzuje počet hodnôt NaN, ktoré sa majú nahradiť. | None
|
V budúcich verziách Pandas bude parameter methodpravdepodobne už nepodporovaný. Ak k tomu dôjde, môžete namiesto neho použiť obj.ffill() alebo obj.bfill(), pretože tieto funkcie majú rovnaký účinok ako parameter method.
Ako používať Pandas DataFrame.fillna()
Funkcia Pandas fillna() sa dá použiť viacerými spôsobmi:
Nahradenie hodnôt NaN pevnou hodnotou
Najskôr vytvoríme 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 vyzerá takto:
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 pandách sa hodnota None v DataFrames a Series interpretuje ako NaN
Na nahradenie chýbajúcich hodnôt hodnotou 0 môžete použiť funkciu pandas fillna():
# Replacing missing values with zero
df_filled = df.fillna(0)
print(df_filled)pythonVýsledkom je, že každá hodnota NaN bola nahradená hodnotou 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.0Použitie metódy dopredu vyplňovania ffill
Ak chcete vyplniť hodnoty NaN hodnotou, ktorá ich priamo predchádza v stĺpci, v ktorom sa nachádzajú, môžete ako parameter odovzdať metódu ffill:
# Replace all NaN values with the value that precedes them
df_ffill = df.fillna(method='ffill')
print(df_ffill)pythonV tomto príklade boli hodnoty NaN v stĺpcoch A a C vyplnené predchádzajúcimi hodnotami v tom istom stĺpci. Keďže v stĺpci B neboli žiadne predchádzajúce hodnoty pre riadok 0, hodnota NaN zostala zachovaná:
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.0Použitie metódy spätného vyplňovania bfill pre riadky
Hodnoty NaN môžu byť tiež vyplnené nasledujúcimi hodnotami na základe ich pozície v riadku. Na to je potrebné použiť metódu bfill a nastaviť parameter axis na hodnotu 1:
df_bfill = df.fillna(method='bfill', axis=1)
print(df_bfill)pythonVýsledok ukazuje, že hodnoty NaN v riadkoch 0 a 2 boli nahradené hodnotami, ktoré nasledujú za nimi v tom istom riadku. Hodnota NaN v prvom riadku však zostáva nezmenená, pretože je to posledná hodnota v tomto riadku:
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