读取CSV文件,计算平均值并打印所述平均值

时间:2016-03-08 11:31:37

标签: python

我被分配了一项任务,为小学成员创建一个测验。我已经把每一个任务都钉在了这个任务上。

我必须通过以下方式计算CSV文件中的分数: •按字母顺序排列,每个学生的考试成绩最高 •按最高分,从最高到最低 •按平均得分,从最高到最低。

这是我到目前为止的代码。它似乎没有计算平均值,即使我有效地遵循了PowerPoint。 PowerPoint中的所有内容都在代码中。

这是我到目前为止所拥有的:

import csv

results = open("Scores1.csv", "r+")
csv1 = csv.reader(results, delimiter=",")


data = []

for eachline in csv1:
    print(eachline)
    eachline[1] = int(eachline[1])
    eachline[2] = int(eachline[2])
    eachline[3] = int(eachline[3])
    highscore = max(eachline[1:4])
    eachline.append(highscore)
    average = round(sum(eachline[1:4])/3)
    eachline.append(average)
    data.append(eachline)

print(data)

我得到的错误是:

Traceback (most recent call last):
  File "Z:\My Work\Year 11\Computing\A453 Programming Project\PythonFiles\scores.py", line 17, in <module>
    eachline[1] = int(eachline[1])
IndexError: list index out of range

我不明白给我的错误,因为CSV文件中的所有内容都很好。 我不是最好的,我想要一个简单的答案,这样我就能有效地理解它,并从中学习。

非常感谢。

1 个答案:

答案 0 :(得分:0)

看一下pandas libary,例如,可以像这样获得行的均值和最大值,但是你的例子应该更精确,不能真正看到csv文件的确切结构:

import pandas as pd

data = pd.read_csv("Scores1.csv")
data['mean']= data.mean(axis=1)
data['max'] = data.max(axis=1)