gpt4 book ai didi

python - 整理 csv 数据并计算平均成绩

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:33 26 4
gpt4 key购买 nike

我有一个包含超过 500 行的类(class)和成绩的示例 csv 数据,它看起来像这样

courseid  title  teacher  avggpa  students As   Bs   Cs    Ds   Fs
101 Math Stevens 3.15 105 25.2 45.1 16.7 10.1 2.9
101 Math Stevens 2.98 95 20.2 30.1 30.5 11.5 5.4
101 Math Smith 3.33 120 33.1 40.1 10.2 7.6 4.3
103 English Jane 3.55 108 20.5 16.2 16.5 20.5 10.2
103 English Jane 3.47 100 25.2 38.0 22.0 7.0 2.0
202 Science Roberts 2.67 80 12.0 35.0 27.5 12.5 8.3

(假装这些是用逗号分隔的,我只是出于格式化目的而输入它。另外百分比加起来并不等于 100%,但假装它们是 100%)

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

with open(filename, 'rb') as f:
reader = csv.reader(f, delimiter=',')
next(reader, None) #to skip header
self.data = list(reader)

case_list = []
for entry in self.data:
case = {'course_number': entry[1], 'course_title': entry[2], 'teacher': entry[3]... #and so on for each header
case_list.append(case)

所以我有一个字典列表,其中每个字典条目都是 csv 文件中的一行。

我的目标是对多次教授同一门类(class)的教师的 avggpa 和 As、Bs、Cs、Ds、F 进行合并和平均。因此,在我的示例中,我想对史蒂文和简的类(class)成绩进行平均,然后用视觉效果表示。如果一位老师只教一门类(class),我也想用视觉来表示他的成绩。

我正在努力想出一种方法来确定教师是否教授多于一门类(class)。类似于循环遍历列表并检查 courseid 和教师是否已经在字典中,然后调用一个函数来平均 gpa(如果是),但我似乎无法想出逻辑。

任何帮助将不胜感激,如果需要更多说明,请告诉我。如果还有比我最初使用的更好的方法来组织 csv 数据,请告诉我!

最佳答案

我认为 pandas 是完成这项工作的正确工具。虽然我不是专家,但经过快速谷歌搜索后,我想到了这个:

import pandas as pd

df = pd.read_csv(filename, sep=',')
grouped = df.groupby(['title', 'teacher'])
average = grouped[['avgpa', 'As', 'Bs', 'Cs', 'Ds', 'Fs']].mean()

这应该是正确的,并且只有 4 行长。我希望这对您有帮助。

关于python - 整理 csv 数据并计算平均成绩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45311323/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com