Hva er Pandas fillna() og hvordan bruker man det?
Python- funksjonen pandas DataFrame.fillna() brukes til å erstatte manglende verdier i en DataFrame. Dette kan bidra til å forenkle datarengjøringsprosesser eller være et nyttig verktøy når du utfører analyser.
Hva er syntaksen for pandas fillna()?
Funksjonen fillna() aksepterer opptil fem parametere og er strukturert som følger:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)pythonViktige parametere for fillna()
Funksjonen til DataFrame.fillna() kan justeres ved hjelp av ulike parametere:
| Parameter | Beskrivelse | Standardverdi |
|---|---|---|
value
|
En skalærverdi eller en ordbok (eller serie) som skal erstatte NaN-er | None
|
method
|
Angir fyllingsmetoden; fremoverfylling (ffill) eller bakoverfylling (bfill)
|
None
|
axis
|
Bestemmer hvilken akse operasjonen skal utføres på (0 eller index for rader, 1 eller columns for kolonner)
|
0 |
inplace
|
Hvis True, blir endringene gjort direkte i den opprinnelige DataFrame
|
False
|
limit
|
Et heltall som begrenser antall NaN-verdier som skal erstattes. | None
|
I fremtidige versjoner av Pandas vil parameteren methodsannsynligvis ikke lenger støttes. Hvis dette skjer, kan du i stedet bruke obj.ffill() eller obj.bfill(), siden disse funksjonene har samme effekt som parameteren method.
Hvordan bruke Pandas DataFrame.fillna()
Pandas fillna() -funksjonen kan brukes på flere forskjellige måter:
Erstatte NaN-verdier med en fast verdi
Først skal vi opprette en 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 ser slik ut:
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.0I pandas tolkes verdien None i DataFrames og Series som NaN
For å erstatte de manglende verdiene med 0, kan du bruke pandas fillna() -funksjonen:
# Replacing missing values with zero
df_filled = df.fillna(0)
print(df_filled)pythonResultatet er at alle NaN-verdier er erstattet med 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.0Bruk av fremoverfyllingsmetoden ffill
Hvis du vil fylle NaN-verdier med verdien som ligger rett før dem i kolonnen der de befinner seg, kan du overføre metoden ffill som parameter:
# Replace all NaN values with the value that precedes them
df_ffill = df.fillna(method='ffill')
print(df_ffill)pythonI dette eksemplet er NaN-verdiene i kolonne A og C fylt ut med de foregående verdiene i samme kolonne. Siden det ikke var noen foregående verdi i kolonne B for rad 0, beholdes NaN-verdien:
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.0Bruk av bakoverfyllingsmetoden bfill for rader
NaN-verdier kan også fylles med påfølgende verdier basert på deres radposisjon. For å gjøre dette må du bruke metoden bfill og sette parameteren axis til 1:
df_bfill = df.fillna(method='bfill', axis=1)
print(df_bfill)pythonResultatet viser at NaN-verdiene i rad 0 og 2 er erstattet av verdiene som følger etter dem i samme rad. NaN-verdien i første rad forblir imidlertid den samme, fordi den er den siste verdien i den raden:
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