web-dev-qa-db-fra.com

Comment charger un fichier CSV dans Jupyter Notebook?

Je suis nouveau et j'étudie l'apprentissage automatique. Je tombe sur un tutoriel que j'ai trouvé en ligne et j'aimerais faire fonctionner le programme afin que je comprenne mieux. Cependant, je rencontre des problèmes de chargement du fichier CSV dans le bloc-notes Jupyter.

Je reçois cette erreur:

File "<ipython-input-2-70e07fb5b537>", line 2
    student_data = pd.read_csv("C:\Users\xxxx\Desktop\student-intervention- 
system\student-data.csv")
                          ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in 
position 2-3: truncated \UXXXXXXXX escape

et voici le code: enter image description here

J'ai suivi des tutoriels en ligne concernant cette erreur mais aucun n'a fonctionné. Quelqu'un sait-il comment y remédier?

3e tentative avec r "chemin" enter image description here

J'ai aussi essayé "\" et utf-8 mais aucun n'a fonctionné.

J'utilise la dernière version d'Anaconda Windows 7 Python 3.7

3
stella

Utilisez une notation de chaîne brute pour votre chemin Windows. In python '\' ont une signification en python. Essayez plutôt de faire une chaîne comme celle-ci r "path":

student_data = pd.read_csv(r"C:\Users\xxxx\Desktop\student-intervention- system\student-data.csv")

Si cela ne fonctionne pas, essayez de cette façon:

import os

path = os.path.join('c:' + os.sep, 'Users', 'xxxx', 'Desktop', 'student-intervention-system', 'student-data.csv')
student_data = pd.read_csv(path)
3
Bohun Mielecki

Remplacez toutes les barres obliques inverses \ avec des barres obliques / ou placez un r avant votre chaîne de chemin de fichier pour éviter cette erreur. Il ne s'agit pas que le nom de votre dossier soit trop long.


Comme Bohun Mielecki l'a mentionné, le \ le caractère qui est généralement utilisé pour désigner la structure d'un fichier dans Windows a une fonction différente lorsqu'il est écrit dans une chaîne.

Depuis la documentation Python3: La barre oblique inversée \ Le caractère est utilisé pour échapper les caractères qui ont autrement une signification spéciale, comme la nouvelle ligne, la barre oblique inverse ou le caractère de citation.

Comment cela affecte particulièrement votre déclaration est que dans la ligne

student_data = pd.read_csv("C:\Users\xxxx\Desktop\student-intervention- 
system\student-data.csv")

\Users correspond à la séquence d'échappement \Uxxxxxxxxxxxxxxxx fait référence à un Character with 32-bit hex value xxxxxxxx. Pour cette raison, Python essaie de trouver une valeur hexadécimale 32 bits. Cependant, comme -sers de Users ne correspond pas au format xxxxxxxx, vous obtenez l'erreur:

SyntaxError: (erreur unicode) le codec 'unicodeescape' ne peut pas décoder les octets en position 2-3: échappement\UXXXXXXXX tronqué


La raison pour laquelle votre code fonctionne maintenant est que vous avez placé un r devant 'C:\Users\xxxx\Desktop\project\student-data.csv'. Cela indique à python de ne pas traiter le caractère barre oblique inverse / comme d'habitude et lit la chaîne entière telle quelle.

J'espère que cela vous aide à mieux comprendre votre problème. Si vous avez besoin de plus de précisions, faites-le moi savoir.

Source: Documentation Python

2
MoltenMuffins

J'ai trouvé le problème. Le problème est le nom de mon dossier qui est vraiment long. J'ai changé le nom de mon dossier en "projet" et les données sont enfin chargées! Idiot!

enter image description here

0
stella

Essayez cette student_data = pd.read_csv("C:/Users/xxxx/Desktop/student-intervention- system/student-data.csv").

Remplacer les barres obliques inverses dans ce code, cela fonctionnera pour vous.

0
Qasim ali shah

Essayer

pd.read_csv('file_name',encoding = "utf-8")
0
balderman