私は戻って年をしようとしています、毎年の等級の平均。 私がしようとしていたのは、year:gradeに合った辞書を作成し、year_of_gradeなどの別の辞書を取得することでした。平均の配列を抽出して辞書を作成する
Year Grade
2001 100
2002 99
2001 88
2003 11
2005 55
は、より多くありますが、私はそれが全体のデータを持っていることが必要だとは思わない年とグレード:
これは、CSV形式の2つのヘッダを持つファイル、からです。
def construct_values(file):
"""
Construct the values needed to graph the average grade of the class over time
Parameters
----------
file_path: A string. Absolute path to file.
Returns
-------
years: array of integers
average_grades: array of floats
"""
years, average_grades = [], []
grades = []
d = {}
with open(file,'r') as f:
next(f)
for line in f:
year, grade = (s.strip() for s in line.split(','))
years.append(year) # array year
grades.append(grade) # array grade
d = dict(zip(years,grades)) # dict year:grade
for i,j in d:
# i for count frequencies of years
# j for summation of grades
# j/i for average grade and extract as array
return years, average_grades
私は明確にしようとしましたが、それでも明らかでない場合はお知らせください。
元気Iと()?それは年とされていますか?また、私はこの場合にどのように等級を付けることができません。 – Mayjunejuly
ええ、すみません、それは年です。あなたが最初に* 2001,100 *を見たときに、グレードはここに追加されます: '' '[year] = [grade、1]' ''。中間の辞書は{2001:[100、1]}であり、次に* 2001,88 *を満たす。中間の辞書は{2001:[188、2]、2002:[99、1]}になります。あなたは単に平均的な成績を返したいので、成績の合計と成績の数をリストに保存できると思います。実際の成績値を追加する必要はありません。 – Ballack
あなたのコードは動作しますが、これは注文を考慮しませんか? cuzそれはすべてのarond、例えば2001年から始まっていないシャッフルされています。 – Mayjunejuly