如何计算数字的平均值并在python中的csv文件中进行排序



在这个项目中,您必须编写一个程序,从csv文件中读取不同人员的成绩,并对成绩执行以下计算,并将结果值保存在文件中。在这个项目中,您必须实现5个不同的任务。不要以任何方式更改函数的名称,并在相同的def中实现您想要执行的所有代码。1-计算每个人的平均值,并将其与每个人的姓名一起保存,姓名的输出顺序必须与输入文件的顺序完全相同。2-按升序保存费率以及每个人的姓名。3-用每个人的名字保存前三个GPA。4-保存三个低GPA,但不包含每个人的姓名。5-计算并存储平均等级。我完成了第一项任务,但对其他人有意见。

import csv
# For the average
from statistics import mean 
def calculate_averages(grades, mean):
with open("address of input csv file") as infile:
reader=csv.reader(infile)
with open("address of output csv file" , "w", newline="") as outfile:
writer = csv.writer(outfile)
for row in reader:
name = row[0]
grade_mean = (float(grade) for grade in row [1:])
writer.writerow([row[0], mean(grade_mean)])


def calculate_sorted_averages(input_file_name, output_file_name):


def calculate_three_best(input_file_name, output_file_name):


def calculate_three_worst(input_file_name, output_file_name):


def calculate_average_of_averages(input_file_name, output_file_name):

例如,等级csv文件包含以下内容:

mandana,5,7,3,15
hamid,3,9,4,20,9,1,8,16,0,5,2,4,7,2,1
sina,19,10,19,6,8,14,3
sara,0,5,20,14
soheila,13,2,5,1,3,10,12,4,13,17,7,7
ali,1,9
sarvin,0,16,16,13,19,2,17,8

真正的答案是:

import csv
# # For the average
from statistics import mean 
def calculate_averages(grades, mean):
with open("address inputfile") as infile:
reader=csv.reader(infile)
with open("adress of outputfile" , "w", newline="") as outfile:
writer = csv.writer(outfile)
for row in reader:
name = row[0]
grade_mean = (float(grade) for grade in row [1:])
writer.writerow([row[0], mean(grade_mean)])


def calculate_sorted_averages(input_file_name, output_file_name):
avarage_list = []
with open(input_file_name) as infile:
reader=csv.reader(infile)
with open(output_file_name , "w", newline="") as outfile:
writer = csv.writer(outfile)
for row in reader:
name = row[0]
grade_mean = (float(grade) for grade in row [1:])
avarage_list.append([name, mean(grade_mean)])
avarage_list.sort(key = lambda x: x[1])
for item in avarage_list:
writer.writerow([item[0], float(item[1])])

def calculate_three_best(input_file_name, output_file_name):
avarage_list = []
with open(input_file_name) as infile:
reader=csv.reader(infile)
with open(output_file_name , "w", newline="") as outfile:
writer = csv.writer(outfile)
for row in reader:
name = row[0]
grade_mean = (float(grade) for grade in row [1:])
avarage_list.append([name, mean(grade_mean)])
avarage_list.sort(key = lambda x: x[1], reverse=True)
for item in avarage_list[:3]:
writer.writerow([item[0], float(item[1])])

def calculate_three_worst(input_file_name, output_file_name):
avarage_list = []
with open(input_file_name) as infile:
reader=csv.reader(infile)
with open(output_file_name , "w", newline="") as outfile:
writer = csv.writer(outfile)
for row in reader:
name = row[0]
grade_mean = (float(grade) for grade in row [1:])
avarage_list.append([name, mean(grade_mean)])
avarage_list = sorted(sorted(avarage_list, key = lambda x : x[0]), key = lambda x : x[1], reverse = True)
avarage_list_worst = avarage_list[-3:]
avarage_list_worst.sort(key = lambda x: x[1])
for item in avarage_list_worst:
writer.writerow([float(item[1])])          

def calculate_average_of_averages(input_file_name, output_file_name):
avarage_list = []
with open(input_file_name) as infile:
reader=csv.reader(infile)
with open(output_file_name , "w", newline="") as outfile:
writer = csv.writer(outfile)
for row in reader:
name = row[0]
grade_mean = (float(grade) for grade in row [1:])
avarage_list.append([name, mean(grade_mean)])
all_mean = [float(el[1]) for el in avarage_list]
writer.writerow([mean(all_mean)])

最新更新