Здравствуйте, я новый пользователь для Python, и у меня возникла проблема с тем, что я представлял, было довольно простой задачей.Совокупные ежедневные данные для расчета среднемесячного значения
У меня есть несколько (> 50) csv файлов, содержащих ежедневные данные глубины снега. Я хотел бы перебирать файлы csv и рассчитывать ежемесячные средства для глубины снега. Пример данных:
Date,SD
1/1/2000,36
1/2/2000,36
1/3/2000,38
1/4/2000,40
2/1/2000,48
2/2/2000,48
Другими словами, я хотел бы рассчитать ежемесячные снега глубины средних и записать вывод в новый файл CSV. Мне удалось изменить другой пример кода для моих данных, но я получаю ключевые ошибки для использования Date в качестве ключевого значения в моем словаре.
Любые советы?
код до сих пор:
from __future__ import division
import csv
from collections import defaultdict
def default_factory():
return [0, None, None, 0]
reader = csv.DictReader(open(r'C:\SandBox\VALIDATION\TestTable.csv'))
dates = defaultdict(default_factory)
for row in reader:
sd = int(row["SD"])
dates[row["Dates"]][0] += sd
max = dates[row["Dates"]][1]
dates[row["Dates"]][1] = amount if max is None else amount if amount > max else max
min = dates[row["Date"]][2]
dates[row["Dates"]][2] = amount if min is None else amount if amount < min else min
dates[row["Dates"]][3] += 1
for date in dates:
dates[date][3] = dates[date][0]/dates[date][3]
writer = csv.writer(open(r'C:\SandBox\VALIDATION\TestAvg.csv', 'w', newline = ''))
writer.writerow(["Date", "SD", "max", "min", "mean"])
writer.writerows([date] + dates[date] for date in dates)
EDIT: Просто чтобы прояснить, я пытаюсь добиться полного среднемесячные, т.е. января означают, февраль значит, и т.д. ... не вычислить среднее значение для одной даты.
Можете ли вы опубликовать весь стек/ошибку? – jgritty
Если вы вычисляете среднее значение и не медианное, почему вы заботитесь о минимальном и максимальном? – jgritty
Дата, Снег или Даты, SD? – WolframH