recherche
Maisondéveloppement back-endTutoriel PythonComment rééchantillonner les données de séries chronologiques en Python

Comment rééchantillonner les données de séries chronologiques en Python

Aug 29, 2023 pm 08:13 PM
python时间序列Rééchantillonnage

Comment rééchantillonner les données de séries chronologiques en Python

Les données de séries chronologiques sont une séquence d'observations collectées à intervalles de temps fixes. Les données peuvent provenir de n’importe quel domaine, comme la finance, l’économie, la santé et les sciences de l’environnement. Les données de séries chronologiques que nous collectons peuvent parfois avoir des fréquences ou des résolutions différentes, ce qui peut ne pas convenir à nos processus d'analyse et de modélisation des données. Dans ce cas, nous pouvons rééchantillonner les données de la série chronologique par suréchantillonnage ou sous-échantillonnage, modifiant ainsi la fréquence ou la résolution de la série chronologique. Cet article présentera différentes méthodes pour suréchantillonner ou sous-échantillonner les données de séries chronologiques.

Suréchantillonnage

Le suréchantillonnage signifie augmenter la fréquence des données de séries chronologiques. Ceci est généralement effectué lorsque nous avons besoin d'une résolution plus élevée ou d'observations plus fréquentes. Python propose plusieurs méthodes pour suréchantillonner les données de séries chronologiques, notamment l'interpolation linéaire, l'interpolation du voisin le plus proche et l'interpolation polynomiale.

Syntaxe

DataFrame.resample(rule, *args, **kwargs)
DataFrame.asfreq(freq, method=None)
DataFrame.interpolate(method='linear', axis=0, limit=None, inplace=False, limit_direction='forward', limit_area=None)

ici,

  • La fonction

    resample est une méthode fournie par la bibliothèque pandas pour rééchantillonner les données de séries temporelles. Elle est appliquée sur un DataFrame et prend le paramètre de règle, qui spécifie la fréquence souhaitée pour le rééchantillonnage (*args) et les arguments de mots-clés. (**kwargs) peut être fourni pour personnaliser le comportement de rééchantillonnage, comme la spécification de la méthode d'agrégation ou la gestion des valeurs manquantes.

  • La méthode

    asfreq est utilisée en conjonction avec la fonction de rééchantillonnage pour convertir la fréquence des données de la série chronologique. Elle prend le paramètre freq, qui spécifie la chaîne de fréquence souhaitée pour la sortie. Le paramètre de méthode facultatif permet de spécifier comment gérer. toute valeur manquante introduite lors du processus de rééchantillonnage, telle que le remplissage vers l'avant, le remplissage vers l'arrière ou l'interpolation.

  • La méthode d'interpolation est utilisée pour combler les valeurs manquantes ou les lacunes dans les données de séries chronologiques. Il interpole selon la méthode spécifiée (par exemple « linéaire », « le plus proche », « spline ») pour estimer les valeurs entre les observations existantes. Des paramètres supplémentaires peuvent contrôler l'axe d'interpolation, la limite de remplissage pour les valeurs NaN consécutives et s'il faut modifier le DataFrame en place ou renvoyer un nouveau DataFrame.

Interpolation linéaire

L'interpolation linéaire est utilisée pour suréchantillonner les données de séries chronologiques. Il comble les lacunes en traçant des lignes droites entre les points de données. L'interpolation linéaire peut être implémentée à l'aide de la fonction de rééchantillonnage de la bibliothèque pandas.

La traduction chinoise de

Exemple

est :

Exemple

Dans l'exemple ci-dessous, nous avons une série chronologique DataFrame avec trois observations sur des dates non consécutives. Nous convertissons la colonne 'Date' en un format datetime et la définissons comme index. La fonction de rééchantillonnage est utilisée pour suréchantillonner les données en un. fréquence quotidienne (« D ») à l'aide de la méthode asfreq. Enfin, la méthode d'interpolation avec l'option « linéaire » comble les écarts entre les points de données à l'aide de l'interpolation linéaire. Le DataFrame, df_upsampled, contient les données de séries chronologiques suréchantillonnées avec des valeurs interpolées.
import pandas as pd

# Create a sample time series DataFrame
data = {'Date': ['2023-06-01', '2023-06-03', '2023-06-06'],
        'Value': [10, 20, 30]}
df = pd.DataFrame(data)
df['Date'] = pd.to_datetime(df['Date'])
df.set_index('Date', inplace=True)

# Upsample the data using linear interpolation
df_upsampled = df.resample('D').asfreq().interpolate(method='linear')

# Print the upsampled DataFrame
print(df_upsampled)

Sortie

                Value
Date                 
2023-06-01  10.000000
2023-06-02  15.000000
2023-06-03  20.000000
2023-06-04  23.333333
2023-06-05  26.666667
2023-06-06  30.000000

Interpolation du voisin le plus proche

L'interpolation du voisin le plus proche est une méthode simple qui comble les écarts entre les points de données avec l'observation disponible la plus proche. Cette méthode peut être utile lorsque la série chronologique présente des changements brusques ou lorsque l'ordre des observations est important. l'option « la plus proche » pour effectuer l'interpolation du voisin le plus proche

. La traduction chinoise de

Exemple

est :

Exemple

Dans l'exemple ci-dessus, nous utilisons le même DataFrame original qu'avant. Après le rééchantillonnage avec la fréquence « D », la méthode d'interpolation avec l'option « la plus proche » comble les lacunes en copiant maintenant le DataFrame résultant, df_upsampled. a une fréquence quotidienne avec l'interpolation du voisin le plus proche.

import pandas as pd

# Create a sample time series DataFrame
data = {'Date': ['2023-06-01', '2023-06-03', '2023-06-06'],
        'Value': [10, 20, 30]}
df = pd.DataFrame(data)
df['Date'] = pd.to_datetime(df['Date'])
df.set_index('Date', inplace=True)

# Upsample the data using nearest neighbor interpolation
df_upsampled = df.resample('D').asfreq().interpolate(method='nearest')

# Print the upsampled DataFrame
print(df_upsampled)

Sortie

            Value
Date             
2023-06-01   10.0
2023-06-02   10.0
2023-06-03   20.0
2023-06-04   20.0
2023-06-05   30.0
2023-06-06   30.0

Sous-échantillonnage

Le sous-échantillonnage est utilisé pour réduire la fréquence des données de séries chronologiques, souvent pour obtenir une vue plus large des données ou pour simplifier l'analyse. Python propose différentes techniques de sous-échantillonnage, telles que la moyenne, la somme ou la maximisation des valeurs sur un intervalle de temps spécifié.

Syntaxe

DataFrame.mean(axis=None, skipna=None, level=None, numeric_only=None, **kwargs)

Ici, une méthode d'agrégation, telle que

moyenne, somme ou maximum

, est appliquée après le rééchantillonnage pour calculer une valeur unique représentant les observations regroupées dans chaque intervalle de rééchantillonnage. Ces méthodes sont généralement utilisées lors du sous-échantillonnage des données. Ils peuvent être appliqués directement à un DataFrame rééchantillonné, ou ils peuvent être utilisés conjointement avec une fonction de rééchantillonnage pour agréger les données en fonction d'une fréquence spécifique (telle qu'hebdomadaire ou mensuelle) en spécifiant des règles appropriées. La traduction chinoise de Mean Downsampling

est :

Average downsampling

Le sous-échantillonnage moyen calcule la moyenne des points de données dans chaque intervalle. Cette méthode est utile lors du traitement de données haute fréquence et de l'obtention de valeurs représentatives pour chaque intervalle. Vous pouvez utiliser la fonction de rééchantillonnage conjointement avec la méthode moyenne pour effectuer un sous-échantillonnage moyen.

Example

的中文翻译为:

示例

In the below example, we start with a daily time series DataFrame spanning the entire month of June 2023. The resample function with the 'W' frequency downsamples the data to weekly intervals. By applying the mean method, we obtain the average value within each week. The resulting DataFrame, df_downsampled, contains the mean-downsampled time series data.

import pandas as pd

# Create a sample time series DataFrame with daily frequency
data = {'Date': pd.date_range(start='2023-06-01', end='2023-06-30', freq='D'),
        'Value': range(30)}
df = pd.DataFrame(data)
df.set_index('Date', inplace=True)

# Downsampling using mean
df_downsampled = df.resample('W').mean()

# Print the downsampled DataFrame
print(df_downsampled)

输出

            Value
Date             
2023-06-04    1.5
2023-06-11    7.0
2023-06-18   14.0
2023-06-25   21.0
2023-07-02   27.0

Maximum Downsampling

最大降采样计算并设置每个间隔内的最高值。此方法适用于识别时间序列中的峰值或极端事件。在前面的示例中使用max而不是mean或sum允许我们执行最大降采样。

Example

的中文翻译为:

示例

In the below example, we start with a daily time series DataFrame spanning the entire month of June 2023. The resample function with the 'W' frequency downsamples the data to weekly intervals. By applying the max method, we obtain the Maximum value within each week. The resulting DataFrame, df_downsampled, contains the maximum-downsampled time series data.

import pandas as pd
# Create a sample time series DataFrame with daily frequency
data = {'Date': pd.date_range(start='2023-06-01', end='2023-06-30', freq='D'),
        'Value': range(30)}
df = pd.DataFrame(data)
df.set_index('Date', inplace=True)

# Downsampling using mean
df_downsampled = df.resample('W').max()

# Print the downsampled DataFrame
print(df_downsampled)

输出

            Value
Date             
2023-06-04      3
2023-06-11     10
2023-06-18     17
2023-06-25     24
2023-07-02     29

结论

在本文中,我们讨论了如何使用Python对时间序列数据进行重新采样。Python提供了各种上采样和下采样技术。我们探讨了线性和最近邻插值用于上采样,以及均值和最大值插值用于下采样。您可以根据手头的问题使用任何一种上采样或下采样技术。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Merger des listes dans Python: Choisir la bonne méthodeMerger des listes dans Python: Choisir la bonne méthodeMay 14, 2025 am 12:11 AM

TomegelistSinpython, vous pouvez faire l'opérateur, ExtendMethod, ListComprehension, oriteroTools.chain, chacun avec des avantages spécifiques: 1) l'opératorissimplebutlessoficiesivetforlatelists; 2) ExtendisMemory-EfficientButmodifiestheoriginallist; 3)

Comment concaténer deux listes dans Python 3?Comment concaténer deux listes dans Python 3?May 14, 2025 am 12:09 AM

Dans Python 3, deux listes peuvent être connectées via une variété de méthodes: 1) Utiliser l'opérateur, qui convient aux petites listes, mais est inefficace pour les grandes listes; 2) Utiliser la méthode Extende, qui convient aux grandes listes, avec une efficacité de mémoire élevée, mais modifiera la liste d'origine; 3) Utiliser * l'opérateur, qui convient à la fusion de plusieurs listes, sans modifier la liste originale; 4) Utilisez Itertools.chain, qui convient aux grands ensembles de données, avec une efficacité de mémoire élevée.

Chaînes de liste de concaténate pythonChaînes de liste de concaténate pythonMay 14, 2025 am 12:08 AM

L'utilisation de la méthode join () est le moyen le plus efficace de connecter les chaînes à partir des listes de Python. 1) Utilisez la méthode join () pour être efficace et facile à lire. 2) Le cycle utilise les opérateurs de manière inefficace pour les grandes listes. 3) La combinaison de la compréhension de la liste et de la jointure () convient aux scénarios qui nécessitent une conversion. 4) La méthode Reduce () convient à d'autres types de réductions, mais est inefficace pour la concaténation des cordes. La phrase complète se termine.

Exécution de Python, qu'est-ce que c'est?Exécution de Python, qu'est-ce que c'est?May 14, 2025 am 12:06 AM

PythonexecutionistheprocessoftransformingpythoncodeintoexecuableInstructions.1) the IntrepreterredSthecode, convertingitintoStecode, quithepythonvirtualmachine (pvm)

Python: quelles sont les principales caractéristiquesPython: quelles sont les principales caractéristiquesMay 14, 2025 am 12:02 AM

Les caractéristiques clés de Python incluent: 1. La syntaxe est concise et facile à comprendre, adaptée aux débutants; 2. Système de type dynamique, améliorant la vitesse de développement; 3. Rich Standard Library, prenant en charge plusieurs tâches; 4. Community et écosystème solide, fournissant un soutien approfondi; 5. Interprétation, adaptée aux scripts et au prototypage rapide; 6. Support multi-paradigme, adapté à divers styles de programmation.

Python: compilateur ou interprète?Python: compilateur ou interprète?May 13, 2025 am 12:10 AM

Python est une langue interprétée, mais elle comprend également le processus de compilation. 1) Le code Python est d'abord compilé en bytecode. 2) ByteCode est interprété et exécuté par Python Virtual Machine. 3) Ce mécanisme hybride rend Python à la fois flexible et efficace, mais pas aussi rapide qu'une langue entièrement compilée.

Python pour Loop vs While Loop: Quand utiliser lequel?Python pour Loop vs While Loop: Quand utiliser lequel?May 13, 2025 am 12:07 AM

Usaforloopwheniterating aepasquenceorfor pourpascific inumberoftimes; useawhileloopwencontinTutuntutilaconditioniseMet.ForloopsareIdealForkNown séquences, tandis que celle-ci, ce qui est en train de réaliser des étages.

Python Loops: les erreurs les plus courantesPython Loops: les erreurs les plus courantesMay 13, 2025 am 12:07 AM

PythonloopscanleadtoerrorlikeInfiniteLoops, modificationlistDuringiteration, off-by-by-oneerrors, zéro-indexingisss et intestloopinefficisecy.toavoid this: 1) use'i

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.