2016-07-28 2 views
0

Ich versuche, Daten aus Textdateien aus bestimmtem Dateipfad zu importieren, aber bin immer Fehler 'utf-8' codec can't decode byte 0xa5 in position 18: invalid start byteWie kann man "utf-8" übergreifend anwenden, um csv/txt-Dateien im Pandas-Dataframe zu öffnen?

Meine Frage ist es trotzdem, ich „utf-8“ Codierung auf alle Textdateien (etwa 20 andere) I anwenden kann muss irgendwann geöffnet werden, damit ich den obigen Fehler verhindern kann?

Code:

import pandas as pd 
filelist = [r'D:/file1',r'D:/file2'] 
print (len((pd.concat([pd.read_csv(item, names=[item[:-4]]) for item in filelist],axis=1)))) 

auch offen für alle Vorschläge, wenn ich etwas falsch mache.

Vielen Dank im Voraus.

Antwort

1

Keine Lösung zur automatischen Umwandlung der Codierung in utf-8 in Python bekannt.

Alternativ können Sie herausfinden, was die Codierung ist, und lesen Sie es entsprechend. Schreiben Sie dann in utf-8 in die Datei.

this solution funktionierte gut für meine Dateien (Kredit maxnoe)

import chardet 
import pandas as pd 

with open('filename.csv', 'rb') as f: 
    result = chardet.detect(f.read()) # or readline if the file is large 

pd.read_csv('filename.csv', encoding=result['encoding']) 

nicht vergessen pip install chardet

wenn Sie jetzt Datei mit pd.to_csv(), default Pandas schreiben ist in utf-8

zu kodieren
Verwandte Themen