2016-05-29 76 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)