[PYTHON] [Pour les débutants] Script dans les 10 lignes (5. Rééchantillonnage des données de séries chronologiques à l'aide de pandas)

[Pour les débutants] Script dans les 10 lignes (5. Rééchantillonnage des données de séries chronologiques à l'aide de pandas)

Si vous utilisez diverses bibliothèques avec python, j'ai pensé: "C'est pratique parce que vous pouvez en faire un peu avec un peu de code, et vous pouvez créer un petit script en quelques étapes, ce qui est pratique." Je peux trouver ceci, mais je publierai un script en 10 étapes sur une base irrégulière.

En tant que ** 5ème **, je voudrais publier un rééchantillonnage des données de séries chronologiques en utilisant des pandas . </ font>

Je pense qu'il existe de nombreuses situations dans lesquelles vous souhaitez regrouper les ventes, les prix du marché des produits financiers et diverses autres données chronologiques sur une base mensuelle ou trimestrielle. Sachant que cela peut être fait en utilisant le rééchantillonnage des pandas, je voudrais poster un exemple de totalisation annuelle et trimestrielle en utilisant les données de taux de change à titre d'exemple, sans m'oublier.


【environnement】 Linux: debian10 python: 3.7.3 pandas: 1.0.3 jupyterlab: 2.1.0

Pour les données, j'aimerais utiliser les données de taux de change de fred.

Si vous disposez des données suivantes

DATEDEXJ,PUS 2015-01-01,NaN 2015-01-02,120.20 2015-01-05,119.64

** Rééchantillonner en moyenne ** data frame .resample (rule = 'frequency code'). mean () </ font> -Code de fréquence: annuel ('Y'), trimestriel ('Q'), mensuel ('M'), hebdomadaire ('W') -À titre d'exemple, lors du stockage de la moyenne annuelle de la trame de données "df_dexjpus" dans la trame de données "df_year" df_year = df_dexjpus.resample(rule='Y').mean()

1. Un script qui rééchantillonne les données d'échange sur une moyenne annuelle / trimestrielle avec les pandas

Le code a fonctionné en jupyter.

python3.7


#Rééchantillonnage du taux de change(Annuel / trimestriel / mensuel / hebdomadaire)
#Trame de données de taux de change(df_dexjpus)
# infile = ('./dexjpus_20200417.csv')
import pandas as pd
import matplotlib.pyplot as plt

df_dexjpus = pd.read_csv('./dexjpus_20200417.csv' ,index_col='DATE' ,parse_dates=['DATE'])

#Annuel
df_year = df_dexjpus.resample(rule='Y').mean()

#Données 2017
df_2017 = df_dexjpus.loc['2017-01-01' : '2017-12-31']

#Moyenne de change trimestrielle 2017
df_quarter = df_2017.resample(rule='Q').mean()    
 

2. Je voudrais jeter un œil aux scripts dans l'ordre.

** 2-1. Importer la bibliothèque, lire les données **

python3.7



#Rééchantillonnage du taux de change(Annuel / trimestriel / mensuel / hebdomadaire)
#Trame de données de taux de change(df_dexjpus)
# infile = ('./dexjpus_20200417.csv')
import pandas as pd
import matplotlib.pyplot as plt

df_dexjpus = pd.read_csv('./dexjpus_20200417.csv' ,index_col='DATE' ,parse_dates=['DATE'])

df_dexjpus


	DEXJPUS
DATE 	
2015-01-01 	NaN
2015-01-02 	120.20
2015-01-05 	119.64
2015-01-06 	118.26
2015-01-07 	119.5

** 2-2. Je vais jeter un coup d'œil chaque année. ** **

python3.7



#Annuel
df_year = df_dexjpus.resample(rule='Y').mean()

df_year

	DEXJPUS
DATE 	
2015-12-31 	121.049084
2016-12-31 	108.656932
2017-12-31 	112.098554
2018-12-31 	110.397390
2019-12-31 	109.018835
2020-12-31 	108.775333

** 2-3. Prenons 2017 comme exemple. ** **

python3.7



#Données 2017
df_2017 = df_dexjpus.loc['2017-01-01' : '2017-12-31']

 	DEXJPUS
DATE 	
2017-01-31 	114.872105
2017-02-28 	112.911579
2017-03-31 	112.916522
2017-04-30 	110.091000
2017-05-31 	112.243636
2017-06-30 	110.914091
2017-07-31 	112.417000
2017-08-31 	109.826957
2017-09-30 	110.776000
2017-10-31 	112.914762
2017-11-30 	112.819000
2017-12-31 	112.940500

** 2-4. Enfin, j'aimerais examiner les données de chaque trimestre de 2017. ** **

python3.7



#Moyenne de change trimestrielle 2017
df_quarter = df_2017.resample(rule='Q').mean()

df_quarter

 	DEXJPUS
DATE 	
2017-03-31 	113.524098
2017-06-30 	111.113906
2017-09-30 	110.950476
2017-12-31 	112.891803

** Ceci est un rééchantillonnage de données de séries chronologiques en utilisant 5.pandas. ** **

Recommended Posts