Hvad er Pandas fillna(), og hvordan bruges det?
Python -funktionen pandas DataFrame.fillna() bruges til at erstatte manglende værdier i en DataFrame. Dette kan hjælpe med at forenkle datarensningsprocesser eller være et nyttigt værktøj, når der udføres analyser.
Hvad er syntaksen for pandas fillna()?
Funktionen fillna() accepterer op til fem parametre og er opbygget som følger:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)pythonVigtige parametre for fillna()
F DataFrame.fillna() s adfærd kan justeres ved hjælp af forskellige parametre:
| Parameter | Beskrivelse | Standardværdi |
|---|---|---|
value
|
En skalærværdi eller en ordbog (eller serie) til erstatning af NaN’er | None
|
method
|
Angiver udfyldningsmetoden; fremadrettet udfyldning (ffill) eller bagudrettet udfyldning (bfill)
|
None
|
axis
|
Bestemmer, hvilken akse operationen skal udføres på (0 eller index for rækker, 1 eller columns for kolonner)
|
0 |
inplace
|
Hvis True, foretages ændringerne direkte i den oprindelige DataFrame.
|
False
|
limit
|
Et heltal, der begrænser antallet af NaN-værdier, der skal erstattes. | None
|
I fremtidige versioner af Pandas vil parameteren methodsandsynligvis ikke længere blive understøttet. Hvis dette sker, kan du i stedet bruge obj.ffill() eller obj.bfill(), da disse funktioner har samme effekt som parameteren method.
Sådan bruges Pandas DataFrame.fillna()
Pandas fillna() -funktionen kan bruges på flere forskellige måder:
Erstatning af NaN-værdier med en fast værdi
Først skal vi oprette 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 således ud:
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 fortolkes værdien None i DataFrames og Series som NaN
For at erstatte de manglende værdier med 0 kan du bruge pandas fillna() -funktionen:
# Replacing missing values with zero
df_filled = df.fillna(0)
print(df_filled)pythonResultatet er, at alle NaN-værdier er blevet 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.0Brug af fremadrettet udfyldningsmetode ffill
Hvis du vil udfylde NaN-værdier med den værdi, der ligger umiddelbart foran dem i den kolonne, hvor de befinder sig, 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 eksempel er NaN-værdierne i kolonne A og C blevet udfyldt med de foregående værdier i samme kolonne. Da der ikke var nogen foregående værdi i kolonne B for række 0, bevares NaN-værdien:
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.0Brug af bagudfyldningsmetoden bfill til rækker
NaN-værdier kan også udfyldes med efterfølgende værdier baseret på deres rækkeplacering. For at gøre dette skal du bruge metoden bfill og indstille parameteren axis til 1:
df_bfill = df.fillna(method='bfill', axis=1)
print(df_bfill)pythonResultatet viser, at NaN-værdierne i række 0 og 2 er blevet erstattet af de værdier, der følger efter dem i samme række. NaN-værdien i den første række forbliver dog den samme, da det er den sidste værdi i den række:
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