Kas yra Pandas fillna() ir kaip ją naudoti
Python pandas DataFrame.fillna() funkcija naudojama trūkstamoms reikšmėms DataFrame pakeisti. Tai gali padėti supaprastinti duomenų valymo procesus arba būti naudinga priemonė atliekant analizę.
Kokia yra pandas fillna() sintaksė?
fillna() funkcija priima iki penkių parametrų ir yra sudaryta taip:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)pythonSvarbūs parametrai fillna()
DataFrame.fillna() funkcijos veikimą galima reguliuoti naudojant įvairius parametrus:
| Parametras | Aprašymas | Numatytasis vertė |
|---|---|---|
value
|
Skaliarinė reikšmė arba žodynas (arba serija), kuria pakeičiami NaN | None
|
method
|
Nurodo užpildymo metodą: užpildymas į priekį (ffill) arba užpildymas atgal (bfill)
|
None
|
axis
|
Nustato, kuria ašimi atlikti operaciją (0 arba index eilutėms, 1 arba columns stulpeliams)
|
0 |
inplace
|
Jei True, pakeitimai atliekami tiesiogiai originalioje duomenų rėmoje.
|
False
|
limit
|
Sveikasis skaičius, kuris riboja keistinų NaN verčių skaičių. | None
|
Būsimose „Pandas“ versijose method parametras greičiausiai nebus palaikomas. Jei taip atsitiks, galite naudoti obj.ffill() arba obj.bfill() parametrus, nes šios funkcijos veikia taip pat kaip method parametras.
Kaip naudoti Pandas DataFrame.fillna()
Funkcija „Pandas fillna() gali būti naudojama keliais skirtingais būdais:
NaN verčių pakeitimas fiksuota verte
Pirmiausia sukursime duomenų rėmelį (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)pythonDuomenų rėmelis atrodo taip:
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.0Pandose DataFrames ir Series reikšmė None interpretuojama kaip NaN.
Norėdami pakeisti trūkstamas reikšmes 0, galite naudoti pandas fillna() funkciją:
# Replacing missing values with zero
df_filled = df.fillna(0)
print(df_filled)pythonRezultatas yra toks, kad kiekviena NaN reikšmė buvo pakeista 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.0Naudojant išankstinio užpildymo metodą ffill
Jei norite užpildyti NaN reikšmes reikšme, kuri yra tiesiogiai prieš jas stulpelyje, kuriame jos yra, galite perduoti ffill metodą kaip parametrą:
# Replace all NaN values with the value that precedes them
df_ffill = df.fillna(method='ffill')
print(df_ffill)pythonŠiame pavyzdyje A ir C stulpelių NaN reikšmės buvo užpildytos ankstesnėmis to paties stulpelio reikšmėmis. Kadangi B stulpelyje nebuvo ankstesnės reikšmės eilutėje 0, NaN reikšmė išliko:
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.0Naudojant atgalinio užpildymo metodą bfill eilutėms
NaN reikšmės taip pat gali būti užpildytos paskesnėmis reikšmėmis, remiantis jų eilutės pozicija. Norėdami tai padaryti, turite naudoti bfill metodą ir nustatyti axis parametrą į 1:
df_bfill = df.fillna(method='bfill', axis=1)
print(df_bfill)pythonRezultatas rodo, kad NaN reikšmės 0 ir 2 eilutėse buvo pakeistos reikšmėmis, kurios eina po jų toje pačioje eilutėje. Tačiau NaN reikšmė pirmoje eilutėje lieka ta pati, nes tai yra paskutinė reikšmė toje eilutėje:
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