2015-05-26 18 views
16

Sto tentando di leggere un file CSV in un Dataframe in Panda. Quando provo a farlo, ottengo il seguente errore:Errore di codifica in Panda read_csv

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 55: invalid start byte

Questo è da codice:

import pandas as pd 

location = r"C:\Users\khtad\Documents\test.csv" 

df = pd.read_csv(location, header=0, quotechar='"') 

Questo è su un Windows 7 Enterprise Service Pack 1 macchina e sembra applicarsi ad ogni File CSV che creo. In questo caso particolare, il binario dalla posizione 55 è 00101001 e la posizione 54 è 01110011, se questo è importante.

Salvare il file come UTF-8 con un editor di testo non sembra essere d'aiuto. Allo stesso modo, aggiungendo il parametro "encoding = 'utf-8' non funziona, restituisce lo stesso errore

Qual è la causa più probabile di questo errore e ci sono soluzioni alternative oltre all'abbandono di DataFrame costruire per il momento e utilizzando il modulo csv per leggere nella line-by-line CSV

+2

hai provato a passare param 'encoding = 'utf-8'' a' read_csv'? – EdChum

+1

o hai provato a leggere il file usando il modulo csv per verificare se c'è un problema con il file stesso? – Alexander

+0

@Alexander Ho letto correttamente il file con il modulo csv, sì. – khtad

risposta

39

Prova a chiamare read_csv con encoding='latin1', encoding='iso-8859-1' o encoding='cp1252';? queste le varie codifiche presenti su Windows

+0

Sono riuscito a usare tutte e 3 queste codifiche con successo. – Smitty

1

Questo funziona in Mac. come pure è possibile utilizzare

df= pd.read_csv('Region_count.csv',encoding ='latin1')

Problemi correlati