Pandas fillna() : la méthode pour gérer les valeurs NaN dans vos DataFrames
La fonction Python Pandas DataFrame.fillna()
est utilisée pour remplacer les valeurs manquantes dans un DataFrame. Cela est utile dans de nombreux cas pour faciliter les processus de nettoyage de données ou pour effectuer des analyses.
Une valeur NaN (« Not a Number ») représente une donnée manquante ou indéfinie dans un DataFrame Pandas. Elle survient lorsque des données sont absentes ou qu’une opération ne peut pas produire un résultat valide. Pandas utilise NaN pour indiquer ces absences, permettant ainsi de les gérer efficacement avec des fonctions comme fillna()
.
Pandas fillna()
: comment se présente la syntaxe de la méthode ?
La fonction fillna()
prend jusqu’à cinq paramètres et est syntaxiquement structurée comme suit :
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)
pythonQuels sont les paramètres pertinents ?
Le comportement de DataFrame.fillna()
de Pandas peut être adapté à l’aide de différents paramètres :
Paramètres | Description | Valeur par défaut |
---|---|---|
value
|
Une valeur mise à l’échelle ou un dictionnaire Python ou une série pour remplacer les NaNs | None
|
method
|
Indique la méthode de remplissage ; remplissage avant (ffill ) ou remplissage arrière (bfill )
|
None
|
axis
|
Détermine l’axe le long duquel l’opération est effectuée (0 ou index pour les lignes, 1 ou columns pour les colonnes)
|
0
|
inplace
|
Si True , les modifications sont effectuées directement dans le DataFrame d’origine
|
False
|
limit
|
Entier limitant le nombre de valeurs NaN à remplacer | None
|
Dans les versions futures, le paramètre method
ne sera probablement plus supporté. Les programmeurs pourront alors avoir recours à obj.ffill()
ou obj.bfill()
. Ces deux fonctions ont le même effet que le paramètre method
correspondant.
Dans quels cas applique-t-on la méthode DataFrame.fillna()
de Pandas ?
La fonction Pandas fillna()
peut être utilisée de différentes manières :
Remplacer des valeurs NaN par une valeur fixe
Dans un premier temps, on définit un DataFrame :
import pandas as pd
# Exemple de DataFrame avec différentes valeurs
data = {
'A' : [1, 2, None, 4],
'B' : [None, 2, 3, 4],
'C' : [1, None, 3, 4]
}
df = pd.DataFrame(data)
print(df)
pythonLe DataFrame que nous venons de définir se présente comme suit :
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
Notez que dans Python Pandas, la valeur None
est interprétée comme NaN
dans les DataFrames et Series, notamment pour les colonnes de types numériques ou flottants.
Pour remplacer maintenant les valeurs manquantes par la valeur 0, on peut utiliser la fonction Pandas fillna()
:
# Remplacer les valeurs manquantes par la valeur 0
df_filled = df.fillna(0)
print(df_filled)
pythonAu final, chaque NaN a été remplacé par la valeur 0 passée à la fonction :
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
Utilisation de la méthode de remplissage vers l’avant ffill
Si les valeurs NaN doivent être remplies avec les valeurs précédentes de chaque colonne, on peut utiliser la méthode ffill
qui est passée en paramètre à la fonction :
# Remplacement de toutes les valeurs NaN par la valeur précédente
df_ffill = df.fillna(method='ffill')
print(df_ffill)
pythonDans cet exemple, les valeurs NaN des colonnes A et C ont été remplacées par les valeurs précédentes de la même colonne. Comme il n’y avait pas de valeur précédente dans la colonne B, la valeur NaN y est restée :
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
Utilisation ligne par ligne de la méthode de remplissage arrière bfill
Les valeurs NaN peuvent également être remplacées par les valeurs suivantes de la même ligne. Pour cela, il ne suffit pas d’utiliser la méthode bfill
, il est également nécessaire de définir le paramètre axis
à 1 :
df_bfill = df.fillna(method='bfill', axis=1)
print(df_bfill)
pythonLes valeurs NaN de la première et de la troisième ligne ont été remplacées par leurs successeurs respectifs. Il ne reste une valeur NaN que dans la première colonne, car aucune valeur suivante n’est disponible dans cette ligne.
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
- Certificat SSL et protection DDoS
- Sauvegarde et restauration des données
- Assistance 24/7 et conseiller personnel