我正在尝试编写一个python程序来计算csv数据文件中的值的总和。 csv文件只包含三列和三行包含数字数据。 csv数据文件如下所示:
Colum1,Colum2,Colum3
1,2,3
1,2,3
1,2,3
我的python代码有问题来计算总和。不知怎的,它不是计算Colum1的所有值的总和,而是只打印' Colum1'
的两行/值import csv
file = open('data.csv')
rows = csv.DictReader(file)
for r in rows:
print sum([float(r['Colum1'])])
有没有想过如何解决这个问题?
谢谢!
答案 0 :(得分:2)
你应该总结所有行而不只是一行:
import csv
with open('data.csv') as f:
rows = csv.DictReader(f)
print sum(float(r['Colum1']) for r in rows)
此外,关闭打开的文件是一个好习惯,with .. as ..
语法可以解决这个问题