Messdaten in CSV speichern (Fortlaufend)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Jghurt
User
Beiträge: 32
Registriert: Samstag 8. Mai 2021, 15:18

Hallo Zusammen,

ich habe ein kleines Problem, bei dem ich leider nicht weiter komme:

Ich berechne in meinem Python Skript minütlich unterschiedliche Werte. Diese möchte ich jetzt in einer CSV Datei wie folgt abspeichern:

gewünschter Output in CSV:

Code: Alles auswählen

,Zeit,I_MIN,GLOBALSTRAHLUNG
0,2021-05-31 16:38:25,44,350.6653231
1,2021-05-31 16:39:25,34,140.282828
2,2021-05-31 16:40:25,50,404.76195652173897

Was ich bisher geschafft habe (Input):

Code: Alles auswählen

        
Zeit = [d] 
I_MIN = [I_min]
GLOBALSTRAHLUNG = [glob]	
dict = {'Zeit': Zeit, 'I_MIN': I_MIN, 'GLOBALSTRAHLUNG': GLOBALSTRAHLUNG } 
df2 = pd.DataFrame(dict) 
df2.to_csv('test.csv')
und als Output davon kriege ich:

Code: Alles auswählen

,Zeit,I_MIN,GLOBALSTRAHLUNG
0,2021-05-31 16:40:25.523824+02:00,50,404.76195652173897
Die neuen Daten überschreiben bei mir immer in der ersten Zeile die Werte.
Ich schaffe es also nicht wie oben gewünscht, dass die anderen Daten/Werte jeweils in einer neuen Zeile darunter abgespeichert werden.

Danke :)
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Am einfachsten liest du einfach alles aus der bestehenden Datei ein, hängst den Datensatz an, und schreibst alles wieder weg.
Jghurt
User
Beiträge: 32
Registriert: Samstag 8. Mai 2021, 15:18

__deets__ hat geschrieben: Montag 31. Mai 2021, 16:54 Am einfachsten liest du einfach alles aus der bestehenden Datei ein, hängst den Datensatz an, und schreibst alles wieder weg.
Wie meinst du das :D? Also mein Skript ist bisschen länger und macht noch andere Sachen. Nur bei diesem von mir oben erwähnte Abschnitt habe ich Probleme und schaffe es nicht, die berechneten Daten wie gewünscht in der Csv abzuspeichern
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

Es müsste auch möglich sein, einfach die neuen Daten ans Ende der Datei anzuhängen:

Code: Alles auswählen

df2.to_csv("test.csv", mode="a", header=False)
Beim ersten Schreiben dann eben den Header schreiben (header=True) , danach nicht mehr (header=False)
Jghurt
User
Beiträge: 32
Registriert: Samstag 8. Mai 2021, 15:18

rogerb hat geschrieben: Montag 31. Mai 2021, 17:07 Es müsste auch möglich sein, einfach die neuen Daten ans Ende der Datei anzuhängen:

Code: Alles auswählen

df2.to_csv("test.csv", mode="a", header=False)
Beim ersten Schreiben dann eben den Header schreiben (header=True) , danach nicht mehr (header=False)
Danke! Das hat mein Hauptproblem gelöst :)

Mein Output sieht jetzt wie folgt aus:

Code: Alles auswählen

,Zeit,I_MIN,GLOBALSTRAHLUNG
0,2021-05-31 18:39:12.432232+02:00,50,184.198792270531
0,2021-05-31 18:40:26.371231+02:00,50,184.198792270531
0,2021-05-31 18:40:31.899838+02:00,50,184.198792270531
Vorne steht zwar überall die "0" statt den fortlaufenden Zahlen, aber das ist an sich nicht schlimm. Mir war es nur wichtig, dass die Werte nun fortlaufend gespeichert werden. Das passt nun auf den ersten Blick :)
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Ist schon länger her, das ich etwas mit pandas gemacht habe, aber ich denke die erste Null ist der Index.
Ein Blick in die Doku https://pandas.pydata.org/docs/referenc ... o_csv.html
und siehe da, es gibt einen Parameter um das schreiben des Index in die .csv Datei zu unterbinden.

Code: Alles auswählen

df2.to_csv("test.csv", mode="a", header=False, index=False)
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Jghurt
User
Beiträge: 32
Registriert: Samstag 8. Mai 2021, 15:18

ThomasL hat geschrieben: Dienstag 1. Juni 2021, 06:39 Ist schon länger her, das ich etwas mit pandas gemacht habe, aber ich denke die erste Null ist der Index.
Ein Blick in die Doku https://pandas.pydata.org/docs/referenc ... o_csv.html
und siehe da, es gibt einen Parameter um das schreiben des Index in die .csv Datei zu unterbinden.

Code: Alles auswählen

df2.to_csv("test.csv", mode="a", header=False, index=False)
Vielen Dank! :)
Antworten