gpt4 book ai didi

csv - 在python中格式化CSV文件中的数据(计算平均值)

转载 作者:行者123 更新时间:2023-12-04 16:18:29 25 4
gpt4 key购买 nike

import csv
with open('Class1scores.csv') as inf:
for line in inf:
parts = line.split()
if len(parts) > 1:
print (parts[4])


f = open('Class1scores.csv')
csv_f = csv.reader(f)
newlist = []
for row in csv_f:

row[1] = int(row[1])
row[2] = int(row[2])
row[3] = int(row[3])

maximum = max(row[1:3])
row.append(maximum)
average = round(sum(row[1:3])/3)
row.append(average)
newlist.append(row[0:4])

averageScore = [[x[3], x[0]] for x in newlist]
print('\nStudents Average Scores From Highest to Lowest\n')

此处的代码旨在读取 CSV 文件,在前三行(第 0 行是用户名)中,它应将所有三个分数相加并除以三,但它不会计算出正确的平均值,它只是从最后一列中获取分数。

csv file

最佳答案

基本上您需要每一行的统计信息。一般来说,你应该这样做:

import csv

with open('data.csv', 'r') as f:
rows = csv.reader(f)
for row in rows:
name = row[0]
scores = row[1:]

# calculate statistics of scores
attributes = {
'NAME': name,
'MAX' : max(scores),
'MIN' : min(scores),
'AVE' : 1.0 * sum(scores) / len(scores)
}

output_mesg ="name: {NAME:s} \t high: {MAX:d} \t low: {MIN:d} \t ave: {AVE:f}"
print(output_mesg.format(**attributes))

尽量不要考虑在本地做特定的事情是否效率低下。一个好的 Pythonic 脚本应该对每个人都尽可能的可读。

在您的代码中,我发现了两个错误:

  1. 追加到 row 不会改变任何内容,因为 row 是 for 循环中的局部变量,会被垃圾回收。

  2. row[1:3] 只给出了第二个和第三个元素。 row[1:4] 提供您想要的内容,row[1:] 也是如此。 Python 中的索引通常是最终独占的。

还有一些问题需要你思考:

If I can open the file in Excel and it's not that big, why not just do it in Excel? Can I make use of all the tools I have to get work done as soon as possible with least effort? Can I get done with this task in 30 seconds?

关于csv - 在python中格式化CSV文件中的数据(计算平均值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35990023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com