Ich habe eine CSV-Datei, die etwa 100 Spalten von Daten enthält. Jede Spalte stellt Temperaturwerte dar, die alle 15 Minuten während des Tages für jeden der 100 Tage genommen werden. Die Kopfzeile jeder Spalte ist das Datum für diesen Tag. Ich möchte dies in zwei Spalten konvertieren, wobei die erste das Datum Zeit (ich werde das irgendwie haben erstellen), und die zweite, die Temperaturen auf der jeweils anderen für jeden Tag gestapelt sind.Append mehr Spalten in zwei Spalten Python
Mein Versuch:
with open("original_file.csv") as ofile:
stack_vec = []
next(ofile)
for line in ofile:
columns = lineo.split(',') # get all the columns
for i in range (0,len(columns)):
stack_vec.append(columnso[i])
np.savetxt("converted.csv",stack_vec, delimiter=",", fmt='%s')
In meinem Versuch, Ich versuche, einen neuen Vektor mit jedem an das Ende angefügt Spalte zu erstellen. Der Code ist jedoch extrem langsam und funktioniert wahrscheinlich nicht! Sobald ich diesen Schritt herausgefunden habe, muss ich das Datum von jeder Spalte nehmen und 15 Minuten zur Datumzeit für jede Reihe hinzufügen. Jede Hilfe würde sehr geschätzt werden.
Für .csv Ich empfehle immer die numpy Funktion „genfromtext“ verwenden. CSVData = genfromtxt ('original_file.csv', delimiter = '') Danach können Sie mit CSVData arbeiten wie jeder andere numpy Array, ohne wie End-of-line-Charakter über die Dinge zu kümmern und so weiter. Außerdem sollte es ziemlich schnell sein. Was meinst du mit "wahrscheinlich nicht funktioniert"? – offeltoffel
Danke für den Tipp. Wahrscheinlich funktioniert es nicht, ich meine, das Programm läuft, aber nicht abgeschlossen. Ich beende es nach ungefähr 5 Minuten oder so. – Sjoseph
Ich verstehe. Eine Sache, die mir auffällt ist, dass Sie np.savetxt innerhalb Ihrer Schleife über alle 100 Spalten haben. So wird die gleiche Datei immer wieder gespeichert. Wie auch immer, du solltest Marvins Antwort in Betracht ziehen. Er verwendet auch genfromtext und erklärt im Detail, wie Sie es in Ihrer Situation verwenden würden. – offeltoffel