我是python的新手,我试图阅读多本书和网站来解决这个问题,但我不知所措。我有一个csv文件,我正在阅读python,其中包含美国84个气候站的降水数据。我需要计算每个站每年NaN的数量。这是我的文件的简短示例:
station_id year month element 1 2 3 4 5 6 7 8 9 10 etc.
210018 1916 1 PRCP 0 0 1 10 5 4 0 3 NaN NaN
210018 1916 2 PRCP 1 4 5 11 3 4 NaN 4 2 1
210019 1917 1 PRCP 1 0 4 55 0 0 0 1 1 3
210019 1917 2 PRCP 8 9 9 12 9 9 9 1 3 4
station_id等是列名,每个station_id我有100年(1910-2010)和12个月。元素总是PRCP和1 2 3 4 5等代表一个月中的天数并延伸到31.所以在上面的例子中,我需要发现在1916年有2100个站点的3个NaN&和如果有人可以帮助甚至指向我可以进一步研究的网站,我将非常感激。
答案 0 :(得分:0)
您可以使用list.count()计算连续多少个NaN,并将按年份(或电台或其他任何内容)键入的字典中的计数相加。
from csv import reader
nan_counts = {}
with open('/path/to/file') as file:
file_reader = reader(file)
next(file_reader) # Skip the first row of headers
for row in file_reader:
year, data = row[1], row[4:]
nan_counts[year] = data.count('NaN') + nan_counts.get(year, 0)