2016-05-29 71 views
0

我有一个csv文件加载到python对象中。其中15列包含二进制值。我有几千行。比较Python中列值的总和

我想计算每个列的二进制值的总和并对结果进行递增排序。

我只它制成:

sum1=sum(products['1']) 
sum2=sum(products['2']) 
sum3=sum(products['3']) 
.... 
... 
sum15=sum(products['15']) 

和手动处理的结果。有没有一种程序化的方式来实现这一目标?

回答

1

如何:

sorted_sum = sorted([sum(products[i]) for i in range(1, 16)]) 

sorted_sum是列总和的排序列表。但是,我认为指数应该从0到14,而不是1到15.

+0

如果列中有一些名称而不是数字,这会是什么样子? –

+0

然后你应该把所有的列名放在一个列表中,说COLUMN_HEADERS,并替换'为我在范围(1,16)'与'为我在COLUMN_HEADERS' –

+0

这非常辉煌,谢谢。 –

1

,你会发现这里的解决方案:

with open("file.csv") as fin: 
headerline = fin.next() 
list_sum_product=[] 
for i in range(15): 
    total = 0 
    for row in csv.reader(fin): 
     total += int(row[i]) 
    list_sum_product.append(total) 
print sorted(list_sum_product)