我正在尝试做回年,每年的平均分数。 我想要做的是创建一个符合年份的字典:年级,然后得到另一个年份字典:sum_of_grade然后等等。创建一个字典,提取平均数字
它从csv文件,它有两个头是:一年级
Year Grade
2001 100
2002 99
2001 88
2003 11
2005 55
还有很多,但我不认为这是需要有完整的数据。
def construct_values(file):
"""
Construct the values needed to graph the average grade of the class over time
Parameters
----------
file_path: A string. Absolute path to file.
Returns
-------
years: array of integers
average_grades: array of floats
"""
years, average_grades = [], []
grades = []
d = {}
with open(file,'r') as f:
next(f)
for line in f:
year, grade = (s.strip() for s in line.split(','))
years.append(year) # array year
grades.append(grade) # array grade
d = dict(zip(years,grades)) # dict year:grade
for i,j in d:
# i for count frequencies of years
# j for summation of grades
# j/i for average grade and extract as array
return years, average_grades
我试图说清楚,但如果仍不清楚,请告诉我。
怎么了我在years.append()?它应该是年吗?另外,在这种情况下,我不明白如何添加成绩。 – Mayjunejuly
是的,我很抱歉,今年。这个年级附加在这里:'''d [year] = [grade,1]''',当你第一次见面* 2001,100 *时。中间字典将是{2001:[100,1]},然后符合* 2001,88 *。中间字典将是{2001:[188,2],2002:[99,1]}。因为您只想返回平均成绩,所以我认为我们可以保存成绩的总和以及列表中的成绩数。没有必要附加实际的成绩值。 – Ballack
您的代码正常工作,但这不考虑订单吗?因为它是所有重要的,而不是从2001年开始。 – Mayjunejuly