从CSV列到字典 - 平均值?蟒

时间:2017-12-28 07:27:18

标签: python csv dictionary average

我有一个带有第一行学生姓名的csv文件,其他行是学生的成绩: 大卫,巴拉克,千斤顶 60,80,78 100,50,92

我想创建一个带键的字典=学生姓名和值=平均成绩: {'david':80,'barack':65,'jack':85}

如果我要添加更多学生和/或成绩,我希望代码仍能正常工作。

你会做什么?

THX

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作。

import csv
f=open('nameofcsvfile.csv')
reader=csv.reader(f)
d={} #dict to store avg
c=0
name_list=[] #list to store students name
no_of_data=0

for line in reader:
    if(c==0):
        for j in line:
            d[j]=0
            name_list.append(j)
        c+=1
    else:
        no_of_data+=1
        k=0
        for j in line:
            d[name_list[k]]=d[name_list[k]]+int(j.strip())
            k+=1
for keys in d:
    d[keys]=d[keys]/no_of_data
print(d)

希望这有帮助。

答案 1 :(得分:0)

您可以执行以下操作:

import pandas as pd
df = pd.read_csv("filename.csv")

dicts = {}
i=0
for name in df['Names']:
    dicts[name] = df['Grades'][i]
    i += 1

print(dicts)