Maîtriser l'analyse des séries temporelles : comment utiliser Pandas Resample
Published on
L'analyse des données de séries temporelles devient plus simple avec la puissante bibliothèque Python - Pandas. Une fonctionnalité qui se démarque pour l'analyse des séries temporelles est la fonction resample(). Si vous êtes nouveau dans ce domaine ou si vous souhaitez une compréhension plus complète, cet article vous propose un guide détaillé sur l'utilisation de Pandas Resample.
Vous souhaitez créer rapidement des visualisations de données en Python ?
PyGWalker est un projet Python Open Source qui peut aider à accélérer le workflow d'analyse et de visualisation des données directement dans des environnements basés sur Jupyter Notebook.
PyGWalker (opens in a new tab) transforme votre DataFrame Pandas (ou DataFrame Polars) en une interface utilisateur visuelle où vous pouvez faire glisser et déposer des variables pour créer facilement des graphiques. Utilisez simplement le code suivant :
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
Vous pouvez exécuter PyGWalker dès maintenant avec ces notebooks en ligne :
Et n'oubliez pas de nous donner une ⭐️ sur GitHub !
La puissance de Pandas Resample
Tout comme vous pouvez regrouper des données en fonction de certaines catégories avec groupby()
, resample()
permet de regrouper des données à différents intervalles de temps. Cette fonction unique améliore la transformation et le nettoyage des données de séries temporelles. Mais pour en tirer pleinement parti, il est essentiel de comprendre ses principaux paramètres et les concepts sous-jacents.
Principaux concepts du rééchantillonnage
Le rééchantillonnage peut être classé en deux types principaux :
- Upsampling : cela consiste à augmenter la fréquence des données, par exemple en convertissant des données annuelles en données mensuelles. Davantage de points de données représenteront désormais la série temporelle.
- Downsampling : c'est l'inverse de l'upsampling, où nous diminuons la fréquence des données, par exemple en convertissant des données mensuelles en données annuelles.
Comprendre les principaux paramètres de Resample
Maintenant, plongeons dans les paramètres essentiels que vous devez maîtriser pour utiliser resample()
efficacement.
Le paramètre 'rule'
La règle est un paramètre essentiel qui spécifie la fréquence à laquelle vous souhaitez rééchantillonner vos données. Vous souhaitez regrouper votre série temporelle par intervalles de 5 minutes ou de 30 minutes ? Le paramètre de règle vous permet de le faire.
# Rééchantillonnage des données toutes les 5 minutes
df.resample(rule='5T')
Le paramètre 'axis'
Le paramètre axis (par défaut=0) indique si vous souhaitez rééchantillonner le long des lignes ou des colonnes. Dans la plupart des données de séries temporelles, vous constaterez que l'axis=0 (rééchantillonnage le long des lignes) est l'utilisation la plus courante.
# Rééchantillonnage des données le long des colonnes
df.resample(rule='5T', axis=1)
Le paramètre 'closed'
Le paramètre closed contrôle quel côté de l'intervalle est fermé, c'est-à-dire qu'il n'inclura pas les données rééchantillonnées de cet intervalle. Il est particulièrement utile lorsque vous décidez d'inclure ou non les données sur le bord de votre échantillon temporel.
# Rééchantillonnage des données avec le côté droit de l'intervalle fermé
df.resample(rule='5T', closed='right')
Le paramètre 'label'
Ce paramètre permet d'étiqueter les nouveaux bacs créés après le rééchantillonnage. Un bac a deux côtés, le début et la fin. Ce paramètre détermine comment les nouveaux bacs seront étiquetés.
# Rééchantillonnage des données avec des étiquettes à droite
df.resample(rule='5T', label='right')
Le paramètre 'convention'
Le paramètre convention est principalement utilisé lors de l'upsampling et décide où placer les points de données.
# Rééchantillonnage des données avec la convention 'start'
df.resample(rule='5T', convention='start')
Il y a encore plus de paramètres à explorer, mais ceux-ci constituent la base pour utiliser efficacement la fonction resample.
Mise en pratique : utilisation de Pandas Resample
Pour consolider votre compréhension, travaillons sur un exemple détaillé. Imaginez que nous disposions de données de séries temporelles avec un point de données enregistré toutes les 5 minutes de 10h à 11h. Maintenant, nous souhaitons rééchantillonner ces données par intervalles de 15 minutes.
import pandas as pd
# Création d'une plage de dates
date_range = pd.date_range(start='10:00', end='11:00', freq='5T')
# Création d'un DataFrame aléatoire
df = pd.DataFrame(date_range, columns=['date'])
df['data'] = np.random.randint(0,100,size=(len(date_range)))
# Définition de la colonne date comme index
df.set_index('date', inplace=True)
# Rééchantillonnage des données par intervalles de 15 minutes
resampled_data = df.resample(rule='15T').mean()
Dans cet exemple, nous avons tout d'abord créé un DataFrame avec un point de données toutes les 5 minutes de 10h à 11h. Ensuite, en utilisant resample()
, nous avons rééchantillonné les données en intervalles de 15 minutes, en prenant la moyenne des points de données se situant dans chaque intervalle.
Maîtriser l'art du rééchantillonnage peut apporter des améliorations significatives à vos compétences en analyse de séries temporelles. N'hésitez pas à expérimenter avec différents paramètres et techniques pour mieux comprendre leur impact.