2013-06-06 6 views
6

私はWindows 7の64ビットのF:ドライブに.csvファイルを持っていますが、これはpandasに読み込んで操作したいものです。Windows 7のF:ドライブからpandasに読み込み

私が見ている例は、単純なファイル名以外のもの(例: 'foo.csv')から読み取られていません。

import pandas as pd 

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

エラーメッセージは言う:私はここに簡単な何かが欠けている

IOError: Initializing from file failed 

私はこれをしようとすると

は、私は私に明確な問題を作っていないエラーメッセージが表示されます。誰もそれを見ることができますか?

更新:

私はこのようなより多くの情報を手に入れた:

import csv 

if __name__ == '__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 

私は読み取りのアクセス許可のエラーを得ました。ファイルのプロパティをチェックすると、読み取り専用であることがわかりました。チェックをはずした後、私は892行を正常に読み取ることができました。

今、パンダも働いています。ファイルを移動したり、パスを修正する必要はありません。探してくれてありがとう。

+1

をreolved取得correct.Hopeされなかったため、あなたの最善の策は、ファイルを移動することです...しかし、あなたはそれを行うにはしたくない場合は、試してくださいです'os'モジュールを使ってそのディレクトリに移動し、単に' train.csv 'を呼び出してください。 –

+0

チップのおかげで、Ryan。私はそれをする方法を知らなかった。 – duffymo

+1

あなたはファイルパスの代わりにバッファを提供しようとしましたか? 'pd.read_csv(open(trainFile))' – goncalopp

答えて

8

私は、これが動作することを約束することはできませんが、それはショットの価値がある:

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) 
+0

えええええええええと投稿した直前にコメントしました。それがうまくいくかどうかは分かりませんでした。 –

+0

私の更新を見てください。見ていただきありがとうございます。私は答えを感謝します。 – duffymo

+0

@RyanSaxe私は、あなたが提案したことがこれと同じではなく、実際にはうまくいかないと確信しています。 – zwol

0

より良い解決策は、パス名\ファイル名 『「ではなく』 r'pathnameの\ファイル名などのリテラル文字列を使用することです。詳細はLexical Analysisを参照してください。

2

パスが正しいことを確認したら、他のプログラムがファイルを開いていないことを確認してください。私は一度そのエラーを受け取り、Excelファイルを閉じるとエラーが消えてしまいました。

2

私も同じ問題があり、解決しました。

ファイルのパスを確認し、正しく

私は最初にパスがbelow.Thisが働いているように私は、パスを変更した.Then間違っていたので、

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

ようなパスは、これはエラーを返しました良い。

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

これは私の以前のパスはあなたはそれが正直

+0

修正されたコードが混乱しています。 'dfTrain ='と '\\ labeledTrainData.tsv'を二度入力したようですが、これらの2つをすべて削除した場合、初期パスはこれと同じになります。私はここに何かを逃していますか – StayFoolish

関連する問題