De Python-functie pandas DataFrame.fillna() wordt gebruikt om ont­bre­ken­de waarden in een DataFrame te vervangen. Dit kan helpen om ge­ge­vens­op­scho­nings­pro­ces­sen te ver­een­vou­di­gen of een nuttig hulp­mid­del zijn bij het uitvoeren van analyses.

Wat is de syntaxis voor pandas fillna()?

De functie fillna() ac­cep­teert maximaal vijf pa­ra­me­ters en is als volgt opgebouwd:

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

Be­lang­rij­ke pa­ra­me­ters voor fillna()

Het gedrag van de DataFrame.fillna() -functie kan worden aangepast met behulp van ver­schil­len­de pa­ra­me­ters:

Parameter Be­schrij­ving Stan­daard­waar­de
value Een scalaire waarde of een woor­den­boek (of reeks) om NaN’s te vervangen None
method Spe­ci­fi­ceert de vul­me­tho­de; voor­waarts vullen (ffill) of ach­ter­waarts vullen (bfill) None
axis Bepaalt op welke as de bewerking moet worden uit­ge­voerd (0 of index voor rijen, 1 of columns voor kolommen) 0
inplace Als True, worden de wij­zi­gin­gen recht­streeks in het oor­spron­ke­lij­ke DataFrame aan­ge­bracht. False
limit Een geheel getal dat het aantal te vervangen NaN-waarden beperkt. None
Opmerking

In toe­kom­sti­ge versies van Pandas zal de parameter methodwaar­schijn­lijk niet langer worden on­der­steund. Als dit gebeurt, kunt u in plaats daarvan ver­trou­wen op obj.ffill() of obj.bfill(), aangezien deze functies hetzelfde effect hebben als de parameter method.

Hoe Pandas DataFrame.fillna() te gebruiken

De functie Pandas fillna() kan op ver­schil­len­de manieren worden gebruikt:

NaN-waarden vervangen door een vaste waarde

Laten we eerst een DataFrame maken:

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

Het DataFrame ziet er als volgt uit:

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
Opmerking

In pandas wordt de waarde None in Da­taF­ra­mes en Series ge­ïn­ter­pre­teerd als NaN.

Om de ont­bre­ken­de waarden te vervangen door 0, kunt u de pandas fillna() -functie gebruiken:

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

Het resultaat is dat elke NaN-waarde is vervangen door 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

Met behulp van de voor­waart­se vul­me­tho­de ffill

Als u NaN-waarden wilt invullen met de waarde die direct voor hen staat in de kolom waarin ze zich bevinden, kunt u de methode ffill als parameter doorgeven:

# Replace all NaN values with the value that precedes them
df_ffill = df.fillna(method='ffill')
print(df_ffill)
python

In dit voorbeeld zijn de NaN-waarden in kolommen A en C opgevuld met de voor­gaan­de waarden in dezelfde kolom. Aangezien er geen voor­gaan­de waarde in kolom B voor rij 0 was, blijft de NaN-waarde behouden:

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

Met behulp van de ach­ter­waart­se vul­me­tho­de bfill voor rijen

NaN-waarden kunnen ook worden opgevuld met op­een­vol­gen­de waarden op basis van hun rij­po­si­tie. Hiervoor moet u de methode bfill gebruiken en de parameter axis instellen op 1:

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

Het resultaat laat zien dat de NaN-waarden in rij 0 en 2 zijn vervangen door de waarden die daarop volgen in dezelfde rij. De NaN-waarde in de eerste rij blijft echter hetzelfde, omdat dit de laatste waarde in die rij is:

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
Ga naar hoofdmenu