Remplacer les valeurs manquantes (fillna())
La fonction fillna() de Pandas permet de remplacer les valeurs manquantes (NaN) dans un DataFrame par une valeur spécifiée. Vous pouvez remplir ces valeurs manquantes avec un scalaire, comme une constante (par exemple, 0 ou la moyenne des valeurs d’une colonne), ou bien utiliser des méthodes d’imputation plus avancées, telles que la propagation des valeurs vers l’avant (ffill()) ou vers l’arrière (bfill()). L’argument value permet de spécifier une valeur unique ou un dictionnaire pour remplacer les NaN dans des colonnes spécifiques. Cela offre une flexibilité pour traiter les données manquantes sans les supprimer, ce qui peut être particulièrement utile dans le cadre d’analyses où la perte de données serait préjudiciable.
Fonctions :
-
fillna()
La fonction fillna() permet de remplacer les valeurs manquantes (NaN) dans un DataFrame par une valeur spécifique, une méthode de remplissage (comme la méthode de propagation), ou même une valeur calculée à partir des autres éléments du DataFrame. Elle est utilisée pour compléter les données manquantes.
Importation :
import pandas as pd
Attributs :
Paramètre Type Description Valeur par défaut value
scalar, dict, Series, ou DataFrame Valeur(s) de remplacement pour les valeurs manquantes. Peut être une valeur unique ou un dictionnaire pour remplacer des colonnes spécifiques. None
method
str, optionnel Méthode de propagation des valeurs manquantes. Peut être 'ffill'
(propagation vers l'avant) ou'bfill'
(propagation vers l'arrière).None
axis
int, optionnel Spécifie si le remplacement doit se faire sur les lignes ( axis=0
) ou les colonnes (axis=1
).None
inplace
bool Si True
, modifie le DataFrame en place. SiFalse
, renvoie un nouveau DataFrame.False
limit
int, optionnel Limite le nombre de valeurs manquantes à remplacer. None
Exemple de code :
import pandas as pd # Création d'un DataFrame exemple avec des valeurs manquantes data = { 'Nom': ['Alice', 'Bob', 'Charlie', None, 'Eva'], 'Âge': [24, None, 35, 40, None], 'Ville': ['Paris', 'Lyon', None, 'Nice', 'Bordeaux'] } df = pd.DataFrame(data) # Remplacer les valeurs manquantes par une valeur spécifique (ici, 'Inconnu' pour les noms et 'Inconnu' pour les villes) df_filled = df.fillna(value={'Nom': 'Inconnu', 'Ville': 'Inconnu'}) # Afficher le DataFrame après remplacement print(df_filled)
Explication du code :
- Un
DataFrame
est créé avec des valeurs manquantes. - La fonction
fillna(value={'Nom': 'Inconnu', 'Ville': 'Inconnu'})
remplace les valeurs manquantes dans les colonnesNom
etVille
par'Inconnu'
. Un dictionnaire permet d'assigner des valeurs différentes à chaque colonne si nécessaire. - L'exemple avec
method='ffill'
illustre la propagation vers l'avant pour combler les valeurs manquantes. Chaque valeur manquante est remplacée par la dernière valeur non manquante de la colonne. - Le paramètre
inplace=False
crée un nouveauDataFrame
sans modifier l'original. À l'inverse, avecinplace=True
, les modifications seraient appliquées directement àdf
.
- Un