[PYTHON] Comment calculer la somme ou la moyenne des données csv de séries chronologiques en un instant
TL;DR
- Pour gérer les séries chronologiques csv, utilisez des pandas
Chose que tu veux faire
- https://qiita.com/kazutxt/items/a23412625fa3e1f35443
- Je veux trouver les moyennes quotidiennes et mensuelles à partir des données (données de séries chronologiques CSV) accumulées ici.
input.csv
#Date(Jusqu'à quelques minutes),Taux USD,Taux JPY,Taux EUR
#Il y a 144 lignes de données par jour toutes les 10 minutes
# 2020/2/24 18:00 ~ 2020/6/11 23:10
yyyy/mm/dd HH:MM,NN.N(data),NN.N,NN.N
yyyy/mm/dd HH:MM,NN.N(data),NN.N,NN.N
yyyy/mm/dd HH:MM,NN.N(data),NN.N,NN.N
Essayer de réinventer la roue
Tout d'abord, écrivez le code et demandez (essayez de demander)
- Ouvrez le fichier
- Considérez la première colonne comme une date et une heure et convertissez-la en type de date
- Accumuler les valeurs jusqu'à ce que la frontière entre le même mois et le même jour soit franchie
- Divisez les données accumulées par le nombre de données accumulées pour calculer la moyenne
- Sortie de fichier
Éléments qui semblent gênants
- Les premier et dernier jours ne sont pas 144
- 30 jours et 31 jours sont mélangés en un mois
- Nécessite une conversion de type de caractère à date en nombre
Trouvez la roue inventée
- J'ai trouvé une roue lorsque j'ai recherché
série temporelle python csv
csvcalc.py
import pandas as pd
df = pd.read_csv("input.csv",index_col=0,parse_dates=True)
df.resample('D').mean().to_csv("output.csv")
- D est quotidien. M pour mensuel
- la moyenne est le calcul moyen. Somme pour calculer le total
- to_csv est une sortie de fichier
out.csv
2020/2/25,13.99777778,4.343472222,13.19909722
2020/2/26,13.55291667,3.572986111,7.519791667
2020/2/27,12.31902778,4.954513889,9.513611111
・ ・ ・
Les roues produisent même le graphique
- Il semble que vous puissiez le faire avec df.plot ()
- Cela ne fonctionne pas si je le fais sur mac. Pardon
Conclusion
- Ne réinventez pas les roues (sauf à des fins d'étude)
- Trouver des roues