2016-05-29 17 views
0

Ich habe eine CSV-Datei in einem Python-Objekt geladen. 15 der Spalten enthalten binäre Werte. Ich habe mehrere tausend Zeilen.Summe der Spaltenwerte in Python vergleichen

Ich möchte die Summe der Binärwerte jeder Spalte zählen und das Ergebnis aufsteigend sortieren.

Ich habe es nur:

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

und das Ergebnis manuell bearbeiten. Gibt es einen programmatischen Weg, dies zu erreichen?

Antwort

1

Wie wäre es damit:

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

sorted_sum ist die sortierte Liste der Spaltensummen. Ich glaube jedoch, der Index sollte von 0 bis 14, nicht 1 bis 15 laufen.

+0

Wie würde das aussehen, wenn die Spalten einige Namen anstelle von Zahlen haben? –

+0

dann sollten Sie alle Spaltennamen in eine Liste setzen, sagt COLUMN_HEADERS und ersetzen 'für i in Bereich (1, 16)' mit 'für i in COLUMN_HEADERS' –

+0

Das ist sehr brillant, danke. –

1

Sie werden die Lösung finden Sie hier:

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) 
Verwandte Themen