De Python -functie pandas DataFrame.fillna() wordt gebruikt om ontbrekende waarden in een DataFrame te vervangen. Dit kan helpen om gegevensopschoningsprocessen te vereenvoudigen of een nuttig hulpmiddel zijn bij het uitvoeren van analyses.

Wat is de syntaxis voor pandas fillna()?

De functie fillna() accepteert maximaal vijf parameters en is als volgt opgebouwd:

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

Belangrijke parameters voor fillna()

Het gedrag van de DataFrame.fillna() -functie kan worden aangepast met behulp van verschillende parameters:

Parameter Beschrijving Standaardwaarde
value Een scalaire waarde of een woordenboek (of reeks) om NaN’s te vervangen None
method Specificeert de vulmethode; voorwaarts vullen (ffill) of achterwaarts vullen (bfill) None
axis Bepaalt op welke as de bewerking moet worden uitgevoerd (0 of index voor rijen, 1 of columns voor kolommen) 0
inplace Als True, worden de wijzigingen rechtstreeks in het oorspronkelijke DataFrame aangebracht. False
limit Een geheel getal dat het aantal te vervangen NaN-waarden beperkt. None
Opmerking

In toekomstige versies van Pandas zal de parameter methodwaarschijnlijk niet langer worden ondersteund. Als dit gebeurt, kunt u in plaats daarvan vertrouwen 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 verschillende 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 DataFrames en Series geïnterpreteerd als NaN.

Om de ontbrekende 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 voorwaartse vulmethode 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 voorgaande waarden in dezelfde kolom. Aangezien er geen voorgaande 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 achterwaartse vulmethode bfill voor rijen

NaN-waarden kunnen ook worden opgevuld met opeenvolgende waarden op basis van hun rijpositie. 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