在Windows 7上从F:驱动器中读取.csv到pandas

duf*_*ymo 9 python csv pandas

我在Windows 7 64位上的F:驱动器上有一个.csv文件,我想读入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)
Run Code Online (Sandbox Code Playgroud)

错误消息说:

IOError: Initializing from file failed
Run Code Online (Sandbox Code Playgroud)

我在这里错过了一些简单的东西.谁能看到它?

更新:

我确实得到了这样的更多信息:

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
Run Code Online (Sandbox Code Playgroud)

我在阅读时收到了权限错误.当我检查文件的属性时,我发现它是只读的.取消选中后,我成功读取了892行.

现在大熊猫也在努力.无需移动文件或修改路径.谢谢你的期待.

zwo*_*wol 9

我不能保证这会奏效,但值得一试:

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)
Run Code Online (Sandbox Code Playgroud)


Han*_*art 5

更好的解决方案是使用像 r'pathname\filename' 这样的文字字符串,而不是 'pathname\filename'。有关更多详细信息,请参阅词法分析。


she*_*nzy 5

这种情况经常发生在我身上。通常我在 Excel 中打开 csv 文件,并将其另存为 xlsx 文件,并且它可以工作。

所以而不是

df = pd.read_csv(r"...\file.csv")
Run Code Online (Sandbox Code Playgroud)

使用:

df = pd.read_excel(r"...\file.xlsx")
Run Code Online (Sandbox Code Playgroud)