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)
python

Viktige 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
Note

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)
python

DataFrame 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.0
Note

I 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)
python

Resultatet 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.0

Bruk 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)
python

I 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.0

Bruk 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)
python

Resultatet 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
Go to Main Menu