好的所以我给了带有标题的文本文件,然后每行开始一年,然后包含12个数字,对应于1977年到2012年的一年中的几个月。我应该写一个程序使用函数来添加和平均基于年份的数据,但我正在努力解决这个问题。任何帮助都会很棒
答案 0 :(得分:0)
这应该让你开始。
假设这是csv:
year,number_1, number_2...
1911,1,2...
1912,1,3
1933,1,4,
import csv
dict_reader = csv.DictReader(open('myfile.txt'))
average_by_year = collections.defaultdict(int)
for row in dict_reader:
current_year = row['year']
average_by_year[current_year] = (
sum((value for key, value in row.iteritems() if key != 'year')) / 12)
答案 1 :(得分:0)
这应该可行。它逐行遍历数据文件,并平均除第一列之外的每一列的总和。
with open(csvfile) as data:
print [sum(map(int,line[:-1].split(',')[1:]))/12 for line in data]
答案 2 :(得分:0)
这似乎是编码竞赛(或可能是作业)的经典新手I / O问题
symbol_separating_12_numbers = ',' f = open('filename.txt') no_cases = int(f.readline()) #assuming no of cases on the first line as header for case in xrange(no_cases): data = [int(number) for number in f.readline().split(symbol_separating_12_numbers)] months = data[1:] print "%s: %s" % (data[0], sum(months)/len(months)