Code: Alles auswählen
import csv
data = csv.reader(open('/home/neuron/M381S7.csv', "rb"),delimiter=',')
data.next()
data_list = []
data_list.extend(data)
D = []
D1 = []
D2 = []
LY1 = []
LY2 = []
for data in data_list:
D.append(data[0])
D1.append(data[1])
D2.append(data[2])
LY1.append(data[3])
LY2.append(data[4])
# Remove empty fields from strings
nD = [feld for feld in D if feld != '']
nD1 = [feld for feld in D1 if feld != '']
nD2 = [feld for feld in D2 if feld != '']
nLY1 = [feld for feld in LY1 if feld != '']
nLY2 = [feld for feld in LY2 if feld != '']
#convert strings to floats
V1 = [float(value) for value in nD]
V2 = [float(value) for value in nD1]
V3 = [float(value) for value in nD2]
V4 = [float(value) for value in nLY1]
V5 = [float(value) for value in nLY2]
print "List"
List = [V1,V2,V3,V4,V5]
print List
Der Datensatz besteht aus 5 Spalten die unterschiedlich lang sind. Ich bin noch recht neu in python. Der Code funktioniert in dieser Form , allerdings ist das sehr umständlich und unelegant von mir geschrieben. Ich habe schon nach möglichkeiten gesucht mit shape etc. Aber so richtig schlau geworden bin ich noch nicht. Vllt hat jemand Vorschlage wie man data_list (wird ja in Zeilen eingelesen) in einen mehrdimensionalen array, aber in spaltenform umwandelt, daraus die leereinträge entfernt und dann in einen float konvertiert, ohne das ganze Prozedere da oben.
Vielen Dank im voraus! Vllt hat noch jemand eine Idee wie man files interaktiver (habe schon von tkinter - askobenfilname gehört)einliest, als in dieser hardcoding Form.
Neuron