double cité éléments en csv cant lire avec les pandas
J'ai un fichier d'entrée où chaque valeur est stockée comme une chaîne de caractères.
C'est à l'intérieur d'un fichier csv avec chaque entrée à l'intérieur de guillemets doubles.
Fichier de l'exemple:
"column1","column2", "column3", "column4", "column5", "column6"
"AM", "07", "1", "SD", "SD", "CR"
"AM", "08", "1,2,3", "PR,SD,SD", "PR,SD,SD", "PR,SD,SD"
"AM", "01", "2", "SD", "SD", "SD"
Il ya seulement six colonnes. Quelles options dois-je entrer aux pandas read_csv à lire correctement?
Actuellement, je suis en train d'essayer:
import pandas as pd
df = pd.read_csv(file, quotechar='"')
mais cela me donne le message d'erreur:
CParserError: Error tokenizing data. C error: Expected 6 fields in line 3, saw 14
Qui signifie évidemment qu'il est ignorant la '"' et l'analyse de chaque virgule, comme un champ.
Cependant, pour la ligne 3, colonnes 3 à 6 doivent être des chaînes de caractères avec des virgules. ("1,2,3", "PR,SD,SD", "PR,SD,SD", "PR,SD,SD")
Comment puis-je obtenir des pandas.read_csv pour analyser correctement?
Grâce.
OriginalL'auteur PopcornKing | 2014-10-27
Vous devez vous connecter pour publier un commentaire.
Cela fonctionne. Il revient à l'python parser (comme vous l'avez non réguliers séparateurs, par exemple, ils sont la virgule et parfois de l'espace). Si vous n'avez que des virgules elle serait d'utiliser le c-analyseur et d'être beaucoup plus rapide.
sed
contient des lignes comme4366201,"Erud","Facebook,Ado-Ekiti","2018-03-22 10:38:42","UR",0,0,\N ,\N,\N,\N,\N,\N
et donneParserError: ' ' expected after '"'
j'ai même essayé depd.read_csv("users.csv", sep=",", delimiter="\n", quoting=csv.QUOTE_ALL, engine="python", quotechar='"', encoding="utf-8")
Ce qui a finalement fonctionné pour moi a été
pd.read_csv("users.csv", sep=",", encoding="utf-8", names=["id", "name"...])
Note: sep=',\s* " semble casser à l'aide de quotechar='"', citant=csv.QUOTE_ALL. Il semblait lecture ce serait l'équivalent. Mais, ce n'est pas ce que j'ai trouvé. En laissant ce ici pour les autres.
OriginalL'auteur Jeff