Schreibe Kommentare in eine CSV-Datei mit Pandas

8

Ich möchte einige Kommentare in meine CSV-Datei schreiben, die mit pandas erstellt wurde. Ich habe keine Option dafür in DataFrame.to_csv gefunden (auch wenn read_csv Kommentare überspringen kann), weder im Standard-Modul csv . Ich kann die Datei öffnen, die Kommentare schreiben (Zeile beginnend mit # ) und sie dann an to_csv übergeben. Hat ein Körper eine bessere Option?

    
Mathieu Dubois 24.03.2015, 13:08
quelle

2 Antworten

14

df.to_csv akzeptiert ein Dateiobjekt. So können Sie eine Datei im a -Modus öffnen, Kommentare schreiben und sie an die Funktion dataframe to_csv übergeben.

Zum Beispiel:

%Vor%     
Vor 24.03.2015, 13:28
quelle
1

Ein alternativer Ansatz @ Vors Lösung besteht darin, zuerst den Kommentar in eine Datei zu schreiben und dann mode='a' mit to_csv() zu verwenden, um den Inhalt des Datenrahmens zu derselben Datei hinzuzufügen. Gemäß meinen Benchmarks (unten) dauert das etwa so lange, wie die Datei im Append-Modus geöffnet wird, der Kommentar hinzugefügt wird und dann der Dateihandler an Pandas übergeben wird (gemäß der Antwort von @ Vor). Die ähnlichen Timings machen Sinn, wenn man bedenkt, dass dies Pandas intern tun ( DataFrame.to_csv() ruft CSVFormatter.save() auf, welches _get_handles() Die Datei über open() einzulesen.

In einer separaten Notiz ist es bequem, mit der Datei IO über die with -Anweisung zu arbeiten, die sicherstellt, dass geöffnete Dateien geschlossen werden, wenn Sie damit fertig sind, und die with -Anweisung belassen. Sehen Sie Beispiele in den Benchmarks unten.

Testdaten einlesen

%Vor%

1. Anhängen mit demselben Dateihandler

%Vor% %Vor%

2. Erneutes Öffnen der Datei mit to_csv(mode='a')

%Vor% %Vor%     
Joel Ostblom 12.10.2017 15:42
quelle

Tags und Links