如何在python中使用循环从csv文件的特定行找到平均值?


f = open('TB_burden_countries_2014-09-29.csv')
for row in csv.reader(f):
print(row[7])

这基本上读取文件并打印出特定的行,现在我如何通过使用循环找到这一行的平均值。谢谢你

在谷歌上快速搜索后,我找到了这篇由" Billy"撰写的文章。

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

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

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

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

在你的代码中,我发现了两个错误:
  1. 追加row不会改变任何东西,因为row是for循环中的局部变量,将被垃圾收集。

  2. row[1:3]只给出第二个和第三个元素。Row[1:4]给出你想要的,Row[1:]也一样。Python中的索引通常是结束排他的。

还有一些问题让你们思考:

如果我可以在Excel中打开文件,它不是那么大,为什么不在Excel中做呢?我能利用所有的工具以最少的努力尽快完成工作吗?我能在30秒内完成这个任务吗?

最新更新