My Logfile (Logfile.csv) выглядит следующим образом:Вычислить среднее значение для каждого N минут
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
первая строка Отметка второй строки, является температура третья строка Влажность
Как итерацию по линиям, чтобы я мог рассчитать средние значения температуры и влажности за каждые N минут.
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
Я знаю, что панды, вероятно, будет хороший вариант, но я предпочел бы подход, связанный Csv
Вот что я закончил с:
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 = []
Я получаю средние значения для каждого временной интервал я определяю с timedelta для влажности и температур спасибо за помощь
спасибо за ответ, в значительной степени то, что я искал, не мог задуматься о том, как итерировать в определенных шагах по рядам, извините, если мой вопрос казался ленивым –