2017-12-28 21 views
0

私は最初の行学生の名前や他の線とのcsvファイルを持っている学生の成績は以下のとおりです。 デビッド、バラク、ジャック 60,80,78 100,50,92CSV列から辞書付き - 平均値ですか? Pythonの

私はレコード生成したいですキーと辞書=学生の名前と値=平均等級: {'david':80、 'barack':65、 'jack':85}

もっと多くの生徒を追加する場合は、および/または等級。

あなたは何をしますか?

Thx

+0

は、あなたがより手の込んだことはできますか?構造は非常に不明です。どのマークがどの学生に対応していますか?この場合、ジャックのような印はありません –

+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) 

これが役に立ちます。

+0

完璧に動作します!どうも –

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) 
関連する問題