web-dev-qa-db-fra.com

Lire un fichier .csv dans des pandas à partir de F: Drive sur Windows 7

J'ai un fichier .csv sur mon lecteur F: sous Windows 7 64 bits que j'aimerais lire dans les pandas et manipuler.

Aucun des exemples que je vois ne lit rien d'autre qu'un simple nom de fichier (par exemple, "foo.csv").

Lorsque j'essaie, je reçois des messages d'erreur qui ne clarifient pas le problème:

import pandas as pd

trainFile = "F:/Projects/Python/coursera/intro-to-data-science/kaggle/data/train.csv"
trainData = pd.read_csv(trainFile)

Le message d'erreur dit:

IOError: Initializing from file failed

Il me manque quelque chose de simple ici. Quelqu'un peut-il le voir?

Mettre à jour:

J'ai eu plus d'informations comme ceci:

import csv

if __== '__main__':
    trainPath = 'F:/Projects/Python/coursera/intro-to-data-science/kaggle/data/train.csv'
    trainData = []
    with open(trainPath, 'r') as trainCsv:
        trainReader = csv.reader(trainCsv, delimiter=',', quotechar='"')
        for row in trainReader:
            trainData.append(row)
    print trainData

J'ai une erreur de permission en lecture. Lorsque j'ai vérifié les propriétés du fichier, j'ai constaté qu'il était en lecture seule. J'ai pu lire 892 lignes après l'avoir décochée.

Maintenant, les pandas fonctionnent aussi. Pas besoin de déplacer le fichier ou de modifier le chemin. Merci d'avoir regardé.

8
duffymo

Je ne peux pas promettre que cela fonctionnera, mais ça vaut le coup:

import pandas as pd
import os

trainFile = "F:/Projects/Python/coursera/intro-to-data-science/kaggle/data/train.csv"

pwd = os.getcwd()
os.chdir(os.path.dirname(trainFile))
trainData = pd.read_csv(os.path.basename(trainFile))
os.chdir(pwd)
8
zwol

J'ai également eu le même problème et je l'ai résolu.

Vérifiez votre chemin pour le fichier correctement

J'ai d'abord eu le chemin comme

dfTrain = pd.read_csv("D:\\Kaggle\\labeledTrainData.tsv",header=0,delimiter="\t",quoting=3)

Cela a renvoyé une erreur car le chemin était incorrect. Ensuite, j'ai modifié le chemin comme ci-dessous. Cela fonctionne correctement.

dfTrain = dfTrain = pd.read_csv("D:\\Kaggle\\labeledTrainData.tsv\\labeledTrainData.tsv",header=0,delimiter="\t",quoting=3)

C’est parce que mon chemin précédent n’était pas correct.

3
user3126530

Si vous êtes sûr que le chemin est correct, assurez-vous qu'aucun fichier n'a ouvert le fichier. J'ai eu cette erreur une fois, et la fermeture du fichier Excel a fait disparaître l'erreur.

2
Andrew Sturges

Cela m'arrive assez souvent. Habituellement, j'ouvre le fichier csv dans Excel et l'enregistre en tant que fichier xlsx. Cela fonctionne.

alors au lieu de

df = pd.read_csv(r"...\file.csv")

Utilisation:

df = pd.read_Excel(r"...\file.xlsx")
1
sheldonzy

Une meilleure solution consiste à utiliser des chaînes littérales telles que r'pathname\filename 'plutôt que' pathname\filename '. Voir Analyse lexicale pour plus de détails.

1
Hanan Shteingart