Python -funktionen pandas DataFrame.fillna() används för att ersätta saknade värden i en DataFrame. Detta kan bidra till att förenkla datarensningsprocesser eller vara ett användbart verktyg vid analyser.

Vad är syntaxen för pandas fillna()?

Funktionen fillna() accepterar upp till fem parametrar och är strukturerad enligt följande:

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)
python

Viktiga parametrar för fillna()

Funktionen DataFrame.fillna():s beteende kan justeras med hjälp av olika parametrar:

Parameter Beskrivning Standardvärde
value Ett skalärt värde eller en ordbok (eller serie) som ska ersätta NaN-värden. None
method Anger fyllningsmetoden; framåtfyllning (ffill) eller bakåtfyllning (bfill) None
axis Bestämmer vilken axel operationen ska utföras på (0 eller index för rader, 1 eller columns för kolumner) 0
inplace Om True, görs ändringarna direkt i den ursprungliga DataFrame. False
limit Ett heltal som begränsar antalet NaN-värden som ska ersättas. None
Notis

I framtida versioner av Pandas kommer parametern methodsannolikt inte längre att stödjas. Om så blir fallet kan du istället använda obj.ffill() eller obj.bfill(), eftersom dessa funktioner har samma effekt som parametern method.

Hur man använder Pandas DataFrame.fillna()

Funktionen Pandas fillna() kan användas på flera olika sätt:

Ersätta NaN-värden med ett fast värde

Först skapar vi 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 ut så här:

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
Notis

I pandas tolkas värdet None i DataFrames och Series som NaN.

För att ersätta de saknade värdena med 0 kan du använda funktionen pandas fillna():

# Replacing missing values with zero
df_filled = df.fillna(0)
print(df_filled)
python

Resultatet är att varje NaN-värde har ersatts 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

Användning av metoden för framåtfyllning ffill

Om du vill fylla NaN-värden med det värde som direkt föregår dem i kolumnen där de finns kan du skicka 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 det här exemplet har NaN-värdena i kolumnerna A och C fyllts i med de föregående värdena i samma kolumn. Eftersom det inte fanns något föregående värde i kolumn B för rad 0 behålls NaN-värdet:

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

Använda metoden för bakåtfyllning bfill för rader

NaN-värden kan också fyllas med efterföljande värden baserat på deras radposition. För att göra detta måste du använda metoden bfill och ställa in parametern axis till 1:

df_bfill = df.fillna(method='bfill', axis=1)
print(df_bfill)
python

Resultatet visar att NaN-värdena i raderna 0 och 2 har ersatts av värdena som följer efter dem i samma rad. NaN-värdet i den första raden förblir dock oförändrat eftersom det är det sista värdet 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
Gå till huvudmeny