所以,我有一个.csv文件,如下所示:
station_id year january february ... december
210018 1916 nodata 221 417a
210018 1917 17b 98 44
....
210252 1910 54e 110 nodata
210252 1911 99d 24i 77
...
我需要从数据中提取a到i(a-i)的字母。这些字母表示每月失踪天数:1表示1天,我表示9天缺失。现在我不在乎“nodata'细胞。从数据单元格中提取字母后,我想计算每月的总缺失天数:
station_id year january february ... december N_missingdays
210018 1916 nodata 221 417 1(a)
210018 1917 17 98 44 11(b+i)
....
210252 1910 54 110 nodata 8(e+c)
210252 1911 99 24 77 13(d+i)
可能最好的方法是创建一个包含station_id,年份和缺失天数的字典。这就是我想要做的事情:
with open('filepath') as file:
file_reader = reader(file)
for i,row in enumerate(file_reader):
for j,item in enumerate(row):
if item[len(item)-1]=='a':
file_reader[i][j]=''
print file_reader
但是这个功能只是删除了文件中的字母而且它没有正常工作。我不确切知道如何从.csv文件中提取字母并计算它们的含义。 我试图做的另一件事是:
with open('filepath') as file:
file_reader = reader(file)
next(file_reader)
letters_dict={}
for row in file_reader:
station_id,year,months = row[1],row[2],row[4:]
letters_list[station_id,year] = months.count('[0-9][a]') + ... + months.count('[0-9][i]') + letters_dict.get(year, 0) + letters_dict.get(station_id,0)
但是这段代码只在字典中写入零。