Vad är Pandas fillna() och hur använder man det?
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)pythonViktiga 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
|
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)pythonDataFrame 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.0I 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)pythonResultatet ä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.0Anvä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)pythonI 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.0Anvä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)pythonResultatet 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