对 csv 中的每一列求和

RaG*_*aGe 2 python csv

给定一个 csv 文件

A,0,0,1,0
B,0,0,1,0
C,0,0,1,0
D,0,0,1,0
E,0,0,1,0
F,0,0,0,1
Run Code Online (Sandbox Code Playgroud)

我想计算每列的总数。有没有比以下更Pythonic或更有效的方法来做到这一点:

import csv

totals = [0]*4

for row in csv.reader(csvfile):
    counts = [ int(x) for x in row[-4:] ]
    totals = [ sum(x) for x in zip(counts, totals) ]
print(totals)
Run Code Online (Sandbox Code Playgroud)

Jea*_*bre 5

预先转置 csv 文件,跳过当前标题列,只计算每行的总和

cr = zip(*csv.reader(csvfile))
next(cr)

result = [sum(map(int,x)) for x in cr]
print(result)
Run Code Online (Sandbox Code Playgroud)

[0,0,5,1]

不过,要小心,因为它在扩展 的参数时会将整个文件加载到内存中zip