sep=';' nicht am Ende darstellen lassen

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Omm
User
Beiträge: 90
Registriert: Samstag 7. April 2018, 14:05

Hall zusammen
Wie kann ich verhindern, dass kein Separator eingetragen wird?

Code: Alles auswählen

import pandas as pd

    def write_row_in_file(self, A, B, C, D=None, E=None):
        file = path.abspath(path.join(__file__, '../../../', 'data', DATEI))
        data = pd.DataFrame([[A, B, C, D, E]])
        data.to_csv(file, index=False, header=False, mode='a', sep=';')


self.write_row_in_file('spA', 'spB','spC')        
A bis C haben immer einen Wert, D oder E nur manchmal.
d.h. der Eintrag in die Datei sieht dann so (spA;spB;spC;;) aus. Ziel ist es, dass es in diesem Fall dann so (spA;spB;spC) aussieht.
D.h. die Semikolon am Schluss, sollen nicht mit eingetragen werden.
Wie kann ich dies anpassen.
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

Was willst Du da eigentlich machen? Für jede einzelne Zeile einen neuen Dataframe zu erzeugen ist komisch.
Und die offensichtliche Lösung ist, D und E einfach weg zu lassen.
Omm
User
Beiträge: 90
Registriert: Samstag 7. April 2018, 14:05

eigentlich soll die DATEI um eine Zeile erweitert werden. Beispielhaft mit spA bis spE.
Wenn ich es wie nachstehen löse, dann muss ich mir die Zeile zusammenstellen. Dies möchte ich, wenn möglich umgehen.
Der Zeileneintrag hat leider manchmal 3 oder max. 5 Werte. Weglassen geht nicht.

Code: Alles auswählen

    def write_row_in_file(self, datenset):
        file = path.abspath(path.join(__file__, '../../../', 'data', DATEI))
        data = pd.DataFrame([datenset])
        data.to_csv(file, index=False, header=False, mode='a')

self.write_row_in_file('spA;spB;spC')        
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist dann kein CSV. Das hat per definition eine feste Anzahl spalten. Wenn du also mit den üblichen csv-Modulen damit arbeiten willst, muss das auch so sein. Es ist aber vollkommen üblich, leere Felder, also damit auch direkt aufeinander folgende Trennzeichen, zu haben. Warum stört dich das?
Omm
User
Beiträge: 90
Registriert: Samstag 7. April 2018, 14:05

ja genau, es ist eine txt Datei.
evtl. sollte ich das Forma anpassen.
Egal, du hast recht, eigentlich ist es völlig egal, ob da noch Semikolon stehen. Für die Darstellung werde ich das ganz später sowieso in einer Tabelle darstellen.

Vielen Dank für die Hilfe
Antworten