2017-11-07 44 views
0

read_csv diesen Fehler zurückgibt: Initializing from file failed mit latin-1, utf-8 andISO-8859-1.Standard-Zeichencodierungen für pandas.read_csv

from pandas import * 

df = dict(A=[1,2,3],B=['abc','efg','hig'],C=[100,200,300]) 
df = DataFrame(df) 
df 

    A B C 
0 1 abc 100 
1 2 efg 200 
2 3 hig 300 

Ich schrieb es mit einem deutschen Charakter, wie folgend:

df.to_csv('Lück.txt', sep='\t', encoding ='utf-8', index=False) 

und es scheitert es auf diese Weise zu importieren:

read_csv('Lück.txt', sep='\t', encoding = 'utf-8') 

Denn wenn es ant Verfahren zum Nachweis besonderen deutschen Charakter würde ich es ersetzen.

P.S. Ich habe die Anzahl der Beiträge in dieser Ausgabe gesehen, aber keine von ihnen stimmt mit meiner Frage überein und ich bin nicht gut in der Standard-Zeichendekodierung/-codierung, danke.

+0

'Lück' ist eine Variable? –

+0

Eigentlich ist es in einer Liste von Namen, und das Problem wird ausgelöst, wenn Variable zu speziellen deutschen Zeichen kommt, aber hier, um ein Beispiel zu machen, schrieb ich es direkt als Zeichenfolge. – Hamidreza

+0

Sie können eine Liste nicht mit einer Zeichenfolge verketten. –

Antwort

1

Wahrscheinlich liegt die Ursache nicht im deutschen Umlaut, sondern in einem oder mehreren "seltsamen" whitespace Zeichen in der .csv-Datei. Diese treten besonders dann auf, wenn die .csv-Datei zuvor von einer beliebigen Art von copy/paste operation to excel geändert wurde.

Zuerst beginnen Sie Ihre Python-Skript wie folgt aus:

#!/usr/bin/env python 
# -*- coding: utf-8 -* 

Zweitens, stellen Sie sicher, dass Ihre CSV-Dateien enthalten keine Art von seltsamen whitespaace Zeichen, wie here zusammengefasst.

+0

Danke, obwohl das Problem nicht gelöst ist. Wie Sie sagen, könnte es durch Lese-/Schreiboperationen verursacht werden, da diese Datei ursprünglich von den Daten erstellt wurde, die aus der 'xlsx'-Datei extrahiert wurden. – Hamidreza

Verwandte Themen