2013-06-06 48 views
6

我的Windows 7 64位上的F:驅動器上有一個.csv文件,我想讀入熊貓並進行操作。從Windows 7的F:驅動器讀取一個.csv文件到我的熊貓:

我看到的例子都不是從簡單的文件名(例如'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

說實話,你最好的選擇是將文件移動...但如果你不想這樣做,嘗試使用'os'模塊更改爲該目錄,只需調用'train.csv' –

+0

感謝您的提示,瑞安。我不知道該怎麼做。 – 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

我也遇到了同樣的問題,得到了解決。

檢查路徑的文件正確

我最初有像

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

的路徑,因爲路徑是錯誤的。後來我已經改變了路徑below.This是工作這返回一個錯誤精細。

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

這是因爲我剛纔的路徑未correct.Hope你得到它reolved

+0

我越來越困惑你的更正的代碼。看起來你輸入了'dfTrain ='和'\\ labeledTrainData.tsv'兩次,但是如果你刪除了所有這兩個,那麼初始路徑和這個一樣。我在這裏錯過了什麼嗎? – StayFoolish