我正在尝试从包含日期和温度(每天每一分钟的温度值)的CSV文件中获取每日最高温度。这段时间跨度为6个月,我需要6个月中每天的最高温度。
关于如何执行此操作,我有两种思路:
1:我认为我可以使用字典,其键为日期(例如'10 / 30/18'),值作为当天温度的列表。
我需要遍历每一行并将温度添加到相应的每一天。
这是我的开始,但不确定我是否正在以最佳方式进行处理
dates={}
for row in reader:
if row[0] in dates:
dates[row[0]].append([float(row[2])])
else:
tempvalues=[]
tempvalues.append(float(row[2]))
dates.update({row[0]:tempvalues})
print(dates)
2:我可以再次使用日期作为键,但是只有在温度值大于以前的值时才更新温度值。但是我不确定如何将这种if语句放入字典循环中。
答案 0 :(得分:0)
我认为类似的方法应该起作用:
dates={}
for row in reader:
if row[0] in dates:
dates[row[0]].append(float(row[2]))
else:
dates[row[0]] = [(float(row[2]))]
for k, v in dates.items():
print (k, max(v))
如果您只想存储最高温度,这应该起作用:
dates={}
for row in reader:
if row[0] in dates:
if dates[row[0]] < float(row[2]):
dates[row[0]] = float(row[2])
else:
dates[row[0]] = float(row[2])
for k, v in dates.items():
print (k, v)
答案 1 :(得分:0)
您可以使用list comprehension创建字典:
#for dicts with
# dates = { '10/30/18':[95.1,94.1,93.1],
#.... }
min_dates = {date:min(temp)] for (date,temp) in dates}
max_dates = {date:man(temp)] for (date,temp) in dates}