Ich habe einen Datenrahmen in Pandas, den ich in eine CSV-Datei schreiben möchte. Ich mache das mit:
df.to_csv('out.csv')
Und den Fehler bekommen:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u03b1' in position 20: ordinal not in range(128)
Gibt es eine Möglichkeit, dies einfach zu umgehen (dh ich habe Unicode-Zeichen in meinem Datenrahmen)? Und gibt es eine Möglichkeit, anstelle einer CSV-Datei in eine durch Tabulatoren getrennte Datei zu schreiben, z. B. mithilfe einer "to-tab" -Methode (von der ich glaube, dass sie nicht existiert)?
index=False
, um den Index zu löschen.Wenn Sie ein
DataFrame
Objekt mit der Methode in einer CSV-Datei speichernto_csv
, müssen Sie wahrscheinlich nicht die vorhergehenden Indizes jeder Zeile desDataFrame
Objekts speichern .Sie können dies vermeiden , indem Sie einen
False
booleschen Wert an denindex
Parameter übergeben.Etwas wie:
Wenn Ihr DataFrame-Objekt ungefähr so aussieht:
In der CSV-Datei wird Folgendes gespeichert:
statt (der Fall, als der Standardwert
True
übergeben wurde)quelle
df.rename_axis('index_name')
? das ändert nichts an der Datei selbstUm einen Pandas DataFrame in eine CSV-Datei zu schreiben, benötigen Sie
DataFrame.to_csv
. Diese Funktion bietet viele Argumente mit angemessenen Standardeinstellungen, die Sie häufig überschreiben müssen, um sie an Ihren spezifischen Anwendungsfall anzupassen. Beispielsweise möchten Sie möglicherweise ein anderes Trennzeichen verwenden, das Datum / Uhrzeit-Format ändern oder den Index beim Schreiben löschen.to_csv
hat Argumente, die Sie übergeben können, um diese Anforderungen zu erfüllen.In der folgenden Tabelle sind einige gängige Szenarien für das Schreiben in CSV-Dateien und die entsprechenden Argumente aufgeführt, die Sie für diese verwenden können.
quelle
Etwas anderes können Sie versuchen, wenn Sie Probleme beim Codieren in 'utf-8' haben und Zelle für Zelle gehen möchten. Sie können Folgendes versuchen.
Python 2
(Wobei "df" Ihr DataFrame-Objekt ist.)
Dann versuche es:
Sie können die Codierung der Spalten überprüfen, indem Sie:
Warnung: error = 'ignore' lässt nur das Zeichen weg, z
Python 3
quelle
Manchmal treten diese Probleme auf, wenn Sie auch die UTF-8-Codierung angeben. Ich empfehle Ihnen, die Codierung beim Lesen der Datei und dieselbe Codierung beim Schreiben in die Datei anzugeben. Dies könnte Ihr Problem lösen.
quelle
Beispiel für den Export in eine Datei mit vollständigem Pfad unter Windows und für den Fall, dass Ihre Datei Header enthält :
Beispiel, wenn Sie in einem Ordner in demselben Verzeichnis speichern möchten, in dem sich Ihr Skript befindet, mit utf-8-Codierung und Registerkarte als Trennzeichen :
quelle
Es konnte nicht die Antwort für diesen Fall sein, aber da ich die gleiche Fehlermeldung hatte,
.to_csv
versuchte ich es.toCSV('name.csv')
und die Fehlermeldung war anders ("SparseDataFrame' object has no attribute 'toCSV'
). Das Problem wurde also gelöst, indem der Datenrahmen in einen dichten Datenrahmen umgewandelt wurdequelle
.toCSV
und nicht.to_csv
. Sie haben den Unterstrich vergessen