Python 平均数据列
给我一个有标题的文本文件,然后每行以一年开始,然后包括12个数字,对应于1977年到2012年的月份。我应该写一个程序,使用函数来添加和平均数据的基础上,一年,但我挣扎着如何去做这件事。任何帮助都会很好这会让你开始 假设这是csv:Python 平均数据列,python,Python,给我一个有标题的文本文件,然后每行以一年开始,然后包括12个数字,对应于1977年到2012年的月份。我应该写一个程序,使用函数来添加和平均数据的基础上,一年,但我挣扎着如何去做这件事。任何帮助都会很好这会让你开始 假设这是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_ye
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)
这可能会奏效。它逐行遍历数据文件,并平均除第一列之外的每一列的总数
with open(csvfile) as data:
print [sum(map(int,line[:-1].split(',')[1:]))/12 for line in data]
这似乎是编码竞赛或作业中的一个典型新手I/O问题 算法 使用函数打开一个文件 使用函数逐行读取文件 拆分读取字符串以使用函数创建列表 类型转换 切片列表,在索引0的帮助下,将每个月的值列表与年份的值列表分开 使用诸如&之类的基本算术函数计算平均值。 附加功能:使用该函数将数据写入另一个文件 [扰流板代码]请勿将鼠标悬停在下方
你考虑过哪些方法?您以前做过任何编程吗?您在问题中标记了python,您有用于该项目的python代码吗?是否可以显示您需要处理的数据? 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)