Mein Logfile (Logfile.csv) sieht wie folgt aus:berechnen Mittelwert für alle N Minuten
2016-05-17 08:25 13.9 41.6
2016-05-17 08:26 13.9 41.6
2016-05-17 08:27 13.9 41.6
2016-05-17 08:28 13.9 41.7
2016-05-17 08:29 13.9 41.6
2016-05-17 08:30 13.9 41.6
1. Reihe Timestamp ist 2. Reihe ist Temperatur 3. Reihe ist Feuchtigkeit
Wie kann ich iterieren über den Linien, so dass ich Mittelwerte für Temperatur und Feuchtigkeit für jede N Minuten berechnen kann.
f = open("Logfile.csv","r")
f_reader = csv.reader(f,delimiter="\t",dialect='excel-tab')
for row in f_reader:
stringRowDate = row[0]
Date = datetime.datetime.strptime(stringRowDate,"%Y-%m-%d %H:%M")
floatTemp = float(row[1])
floatHum = float(row[2])
... group N minutes and calculate mean values for floatTemp and floatHum
Ich weiß, dass Pandas wahrscheinlich eine gute Option sein würde, aber ich würde einen csv Zusammenhang Ansatz
hier lieber was ich am Ende mit:
import csv
from datetime import timedelta
import datetime
last_time = None
temperatures = []
humidities = []
f = open("DataLogger.csv", "r+")
f_reader = csv.reader(f,delimiter="\t",dialect='excel-tab')
for row in f_reader:
current_time = datetime.datetime.strptime(row[0], "%Y-%m-%d %H:%M")
if last_time is None:
last_time = current_time
temperatures.append(float(row[1]))
humidities.append(float(row[2]))
if (current_time - last_time) > datetime.timedelta(minutes=10):
with open('/DataLoggerAVE.csv', 'a') as f:
x = csv.writer(f,dialect='excel-tab')
avetemp=temperature=sum(temperatures)/len(temperatures)
avehumidity=sum(humidities)/len(humidities)
x.writerow([current_time, avetemp, avehumidity])
last_time = current_time
temperatures = []
humidities = []
ich die Mittelwerte für jede erhalten Zeitintervall Ich definiere mit dem Timedelta für Feuchtigkeit und Temperaturen danke für die Hilfe
danke für die Antwort, ziemlich genau das, was ich suchte, konnte nicht meinen Kopf herum, wie man in bestimmten Schritten über die Reihen iterieren, sorry, wenn meine Frage faul schien –