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

问题描述 投票:0回答:2

我有一个带有第一行学生姓名的csv文件,其他行是学生成绩:david,barack,jack 60,80,78 100,50,92

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

如果我要添加更多学生和/或成绩,我希望代码仍然有用。

你会怎么做?

谢谢

python csv dictionary average
2个回答
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)

希望这可以帮助。


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)
© www.soinside.com 2019 - 2024. All rights reserved.