Wat is Pandas fillna() en hoe gebruik je het?
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)pythonBelangrijke 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
|
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)pythonHet 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.0In 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)pythonHet 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.0Met 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)pythonIn 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.0Met 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)pythonHet 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