Die Daten liegen in sehr großen csv Dateien vor (~900000 Zeilen).
Es geht nun darum gleiche Messungen zu finden und Mittelwerte zu bilden.
Mein Plan ist es eine Index Datei anzulegen, die erzeugt wird, indem das Array, oder csv file, einmal durchgegangen wird.
Die Datei soll dann für jede Messung (diese unterscheiden sich jeweils in 5 strings z.B. testname, datenrate...) eine Zahl bestimmen.
Also z.B.:
[0,0,1,5,2,3.2312]
wobei 0,0,1,5,2 einen bestimmten Test markieren und 3.2312 das Ergebnis ist.
Diese index datei will ich anschließend sortieren, durchgehen und dann die Mittelwerte jeweils bilden, bis sich eine der Indexzahlen ändert.
Nun zu dem Hauptproblem:
Ich bekomme es einfach nicht hin ein ordentliches Array (wie in C) zu erzeugen. Bisher hab ich das so gelöst (code auszug):
Code: Alles auswählen
filecsv = open(infile, "r")
reader = csv.reader(filecsv, delimiter=",")
new_row={}
for row in reader:
k=0
index_temp = 99
for k in range(len(band)):
if (band[k]==row[2]):
index_temp = k
index[i,0] = index_temp
for k in range(len(datarate)):
if (datarate[k]==row[6]):
index_temp = k
index[i,1] = index_temp
for k in range(len(PCL)):
if (PCL[k]==row[7]):
index_temp = k
index[i,2] = index_temp
for k in range(len(test)):
if (test[k]==row[8]):
index[i,3] = k
index[i,3] = index_temp
for k in range(len(measurement)):
if (measurement[k]==row[9]):
index[i,4] = k
index[i,4] = index_temp
index[i,5] = row[10] #messergebnis
#das hier soll die csv Datei in den RAM holen, zum schnelleren durchsuchen
new_row[i,0] = row[0]
new_row[i,1] = row[1]
new_row[i,2] = row[2]
new_row[i,3] = row[3]
new_row[i,4] = row[4]
new_row[i,5] = row[5]
new_row[i,6] = row[6]
new_row[i,7] = row[7]
new_row[i,8] = row[8]
new_row[i,9] = row[9]
new_row[i,10] = row[10]
Habe aber bisher keine Möglichkeit gefunden, um eine liste freier größe zu erstellen, wo ich per index drauf zugreifen kann.
Danke für jede Hilfe (auch andere Lösungsvorschläge für das Problem willkommen!)