Gérer les valeurs manquantes avec des séries temporelles
Gérer les valeurs manquantes dans des séries temporelles consiste à identifier et traiter les trous ou les absences de données dans une séquence temporelle. Cela peut être fait par différentes méthodes telles que : Interpolation : Remplacer les valeurs manquantes par des valeurs estimées en fonction des données environnantes (par exemple, linéaire, polynomiale). Méthodes de remplissage : Utiliser des méthodes comme le remplissage par les valeurs précédentes (ffill) ou suivantes (bfill). Suppression des lignes manquantes : Supprimer directement les entrées contenant des valeurs manquantes si elles sont peu nombreuses ou non essentielles. Ces techniques permettent d’assurer la continuité et la cohérence des données pour une analyse correcte des séries temporelles.
Fonctions :
-
df.fillna(method='ffill')
La méthode fillna() permet de remplir les valeurs manquantes dans un DataFrame. Lorsque vous travaillez avec des séries temporelles, la gestion des valeurs manquantes est cruciale, car ces valeurs peuvent entraîner des erreurs dans les analyses. La méthode fillna() propose plusieurs options pour traiter ces valeurs manquantes. En utilisant l'argument method='ffill', vous appliquez une méthode de "forward fill", c'est-à-dire que la valeur manquante est remplie par la dernière valeur connue avant elle. Cela est particulièrement utile pour les séries temporelles où les données manquantes sont souvent imputées par les valeurs les plus récentes disponibles.
Importation :
import pandas as pd
Attributs :
Paramètre Type Description Valeur par défaut method
str Méthode utilisée pour remplir les valeurs manquantes. 'ffill'
(forward fill) remplace les valeurs manquantes par la dernière valeur connue.None
axis
int Axe le long duquel remplir les valeurs manquantes. Par défaut, cela fonctionne sur les lignes ( axis=0
), mais vous pouvez le modifier pour les colonnes (axis=1
).0
limit
int, optionnel Nombre maximum de valeurs manquantes à remplir. Par défaut, toutes les valeurs manquantes sont remplies. None
inplace
bool Si True
, remplace les valeurs dans le DataFrame d'origine, sinon retourne un nouveau DataFrame avec les valeurs remplies.False
Exemple de code :
import pandas as pd # Création d'un DataFrame exemple avec des valeurs manquantes data = { 'date': ['2025-01-01', '2025-01-02', '2025-01-03', '2025-01-04'], 'ventes': [100, None, None, 200] } df = pd.DataFrame(data) # Convertir la colonne 'date' en datetime df['date'] = pd.to_datetime(df['date']) # Définir la colonne 'date' comme index df.set_index('date', inplace=True) # Remplir les valeurs manquantes avec la méthode forward fill df_filled = df.fillna(method='ffill') # Affichage du DataFrame après remplissage des valeurs manquantes print(df_filled)
Explication du code :
import pandas as pd
importe la bibliothèque pandas, renommée ici enpd
pour simplifier son utilisation dans le code.Création du DataFrame avec des valeurs manquantes
Un DataFrame est créé à partir d'un dictionnaire avec deux colonnes :
'date'
et'ventes'
. La colonne'ventes'
contient certaines valeurs manquantes (None
) qui sont représentées par desNaN
dans le DataFrame.Conversion de la colonne 'date' en datetime
La méthode
pd.to_datetime(df['date'])
est utilisée pour convertir les valeurs de la colonne'date'
en objets de type datetime. Cela permet de manipuler et d'analyser les dates de manière plus efficace.Définition de 'date' comme index
La méthode
df.set_index('date', inplace=True)
définit la colonne'date'
comme index du DataFrame, permettant ainsi des manipulations temporelles, telles que le resampling ou la recherche par date.Remplissage des valeurs manquantes avec la méthode forward fill
La méthode
fillna(method='ffill')
est utilisée pour remplir les valeurs manquantes (NaN
) de la colonne'ventes'
en les remplaçant par la dernière valeur non manquante disponible avant celle-ci. Cette méthode est appelée forward fill ou propagation vers l'avant.Affichage du DataFrame après remplissage
Le DataFrame résultant affiche la colonne
'ventes'
où les valeurs manquantes ont été remplacées par la dernière valeur disponible, comme suit : les valeursNaN
de la ligne 2 et 3 sont remplies par la valeur 100 de la ligne précédente.