计算列中的值的总和

时间:2015-10-07 22:45:32

标签: python csv dictionary sum

我正在尝试编写一个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'])])

有没有想过如何解决这个问题?

谢谢!

1 个答案:

答案 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 ..语法可以解决这个问题