我需要找出不同气象站的每日最高和最低气温。我的数据来自http://www.ncdc.noaa.gov/orders/qclcd/ 我用的是7月份的每小时记录。这显示了数据的屏幕截图。
我对第一列(wban编号)、第二列(年月日)和第九列(干球温度)感兴趣。与传统的map函数不同,我的mapper需要在实际的reducer执行其余的操作之前执行一些reduce。我的Map需要找到每日最高和最低干球温度在给定的气象站。输出应该是一个键值对(station,[date,min\u temp,max\u temp]),它将作为减速机的输入。然后减速器需要找到所有气象站的每日最小值和最大值。
我曾尝试将数据存储在defaultdict中,但我被困在如何迭代这些值以找到最低和最高温度上。这个问题对我来说相当简单,读取文件的行,拆分它们,提取值并取相应的最小值和最大值。然而,由于我有限的编程经验,我真的不知道如何将其放入正确的python代码中。
我尝试过这样存储数据:
from collections import defaultdict
data = defaultdict(list)
with open(filename, "r") as f:
for line in f:
line = line.strip().split(",")
station = line[0]
date = line[1]
temp = line[8]
try:
station = int(station)
date = int(date)
temp = int(temp)
except ValueError:
continue
data[station].append((date, temp))
也许你甚至不需要字典。应该有一种方法来遍历这些行,并在每天发生变化时进行检查,并取当天的最小值和最大值。我将感谢任何关于这个问题的指导!
暂无答案!
目前还没有任何答案,快来回答吧!