我的文本文件有两列:1)第1列的格式为yyyy-mm-dd,2)第2列是降水。
目标:仅在4月,5月,6月,7月和8月(4,5,6,7,8)的月份从第2列中提取降水的原始值。
过程:使用line.split从第-1列中仅从yyyy-mm-dd格式中提取mm。
问题:我可以从字典项中成功打印k,v(月份和降水量)。但是,当我使用if语句提取特定月份的降水值时,我得到了空白数组。我想知道我可以使用.append以(1.8,2.1,3.3)
格式获得降水。
代码:
file1 = open("test.txt","r")
Growing=[]
Intermediate=[]
Dormant=[]
for line in file1:
line2 = line.split()
WQ = line2[1]
month = line2[0].split("-")[1]
dct1={month:WQ}
for k,v in dct1.items():
if (k ==4 or k==5 or k==6 or k==7 or k==8):
Growing.append(dct1 [k])
print Growing
答案 0 :(得分:0)
更明显的结构是列表字典:
data = collections.defaultdict()
并在循环中
data.setdefault( month,[]).append( WQ )
然后您可以按键访问每个月的数据。
也许更简单的方法是使用numpy.loadtxt,
map = {'jan':1,'feb':2,'mar':3,'apr':4,'may':5} # and the rest
data = numpy.loadtxt("test.txt",dtype = dtype([('month','S4'),('WQ',float)]))
然后选择
data[data['month']=='apr']['WQ']