Il y avait un problème de lecture des données du cycle de 30 secondes collectées en un an sur plusieurs bases et de calcul de la valeur totale de chaque fois, et je ne pourrais pas du tout le traiter si je le faisais avec la méthode simple, alors je vais noter un peu le contenu que j'ai conçu.
La date, l'heure et la valeur sont saisies au format CSV pour chaque base.
Date et l'heure | valeur |
---|---|
2018-10-01 00:00:00 | 4 |
2018-10-01 00:00:30 | 1 |
2018-10-01 00:01:00 | 2 |
2018-10-01 00:01:30 | 6 |
2018-10-01 00:02:00 | 7 |
2018-10-01 00:02:30 | 7 |
: | : |
2019-09-31 23:59:30 | 7 |
Ces données sont collectées à partir de plus de 100 emplacements. De plus, ce n'était pas en temps réel, mais le contenu devait être agrégé après un certain laps de temps.
Par simple calcul, un emplacement est 1 051 200 et 100 emplacements totalisent 105 120 000 données.
...Milliard(-_-;)
Lisez tous les fichiers à la fois, regroupez-les par date et heure et obtenez la valeur totale!
python
from glob import glob
import pandas as pd
files = glob("data/*.csv")
df = pd.DataFrame()
for file in files:
df = pd.concat([df, pd.read_csv(file)])
df = df.groupby("Date et l'heure").sum()
df.to_csv("Valeur totale.csv")
... l'utilisation de la RAM utilise régulièrement la zone d'échange et se termine par une erreur lorsqu'elle dépasse 80 Go après une demi-journée.
J'ai essayé la méthode de réduction du nombre de fichiers et de calcul de la valeur totale petit à petit, mais cela ne semble pas fonctionner.
J'ai essayé de lire le fichier et de calculer la valeur totale à chaque fois.
python
from glob import glob
import pandas as pd
files = glob("data/*.csv")
df = pd.DataFrame()
for file in files:
df = pd.concat([df, pd.read_csv(file)])
df = df.groupby("Date et l'heure").sum().reset_index()
df.to_csv("Valeur totale.csv")
En conséquence, cela n'a pris que quelques minutes sans surcharger la RAM.
C'est peut-être une évidence, et une fois que je comprends, ce n'est rien à faire, mais comme j'ai passé un peu de temps, j'ai pensé que ce serait bien si même une personne qui avait la même difficulté pouvait être réduite.
Au fait, mon travail commence à partir d'ici. Analyse des données, faisons de notre mieux ... (-_-;)
Recommended Posts