web-dev-qa-db-fra.com

Erreur de codage dans Panda read_csv

J'essaie de lire un fichier CSV dans un Dataframe dans Pandas. Lorsque j'essaie de faire cela, j'obtiens l'erreur suivante:

UnicodeDecodeError: le codec 'utf-8' ne peut pas décoder l'octet 0x96 en position 55: octet de début non valide

C'est du code:

import pandas as pd

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

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

Ceci est sur un ordinateur Windows 7 Enterprise Service Pack 1 et cela semble s'appliquer à tous les fichiers CSV que je crée. Dans ce cas particulier, le binaire de l'emplacement 55 est 00101001 et l'emplacement 54 est 01110011, si cela compte.

Enregistrer le fichier au format UTF-8 avec un éditeur de texte ne semble pas non plus aider. De même, l'ajout du paramètre "encoding = 'utf-8' ne fonctionne pas non plus - il renvoie la même erreur.

Quelle est la cause la plus probable de cette erreur et existe-t-il d'autres solutions que d'abandonner la construction DataFrame pour le moment et d'utiliser le module csv pour lire ligne par ligne dans le fichier CSV?

44
khtad

Essayez d'appeler read_csv avec encoding='latin1', encoding='iso-8859-1' ou encoding='cp1252' (voici quelques-uns des divers encodages trouvés sous Windows).

117
maxymoo

Cela fonctionne sous Mac aussi, vous pouvez utiliser

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

10
sushmit