2013-06-06 33 views
6

Tôi có tệp .csv trên ổ F: trên Windows 7 64 bit mà tôi muốn đọc vào gấu trúc và thao tác.Đọc một .csv vào gấu trúc từ F: ổ đĩa trên Windows 7

Không có ví dụ nào tôi thấy được đọc từ bất kỳ điều gì khác ngoài tên tệp đơn giản (ví dụ: 'foo.csv').

Khi tôi cố gắng này tôi nhận được thông báo lỗi mà không làm cho vấn đề rõ ràng với tôi:

import pandas as pd 

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

Các thông báo lỗi nói:

IOError: Initializing from file failed 

tôi là thiếu một cái gì đó đơn giản ở đây. Có ai nhìn thấy nó không?

Cập nhật:

tôi đã nhận được thêm thông tin như thế này:

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 

tôi nhận được một lỗi cho phép trên đọc. Khi tôi kiểm tra các thuộc tính của tập tin, tôi thấy rằng nó là chỉ đọc. Tôi đã có thể đọc thành công 892 dòng sau khi bỏ chọn nó.

Bây giờ gấu trúc cũng đang hoạt động. Không cần phải di chuyển tệp hoặc sửa đổi đường dẫn. Cảm ơn bạn đã tìm kiếm.

+1

một cách trung thực, đặt cược tốt nhất của bạn là để di chuyển các tập tin ... nhưng nếu bạn không muốn làm điều đó, hãy thử bằng cách sử dụng mô-đun 'os' để thay đổi vào thư mục đó và chỉ cần gọi 'train.csv' –

+0

Cảm ơn lời khuyên, Ryan. Tôi không biết phải làm thế nào. – duffymo

+1

bạn đã thử cung cấp bộ đệm thay vì filepath chưa? 'pd.read_csv (mở (trainFile))' – goncalopp

Trả lời

8

Tôi không thể hứa rằng điều này sẽ làm việc, nhưng nó có giá trị một shot:

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

yeah haha ​​Tôi vừa nhận xét rằng ngay trước khi bạn đăng nó. Không chắc nó có hoạt động không. –

+0

Xem cập nhật của tôi. Cảm ơn bạn đã tìm kiếm. Tôi đánh giá cao câu trả lời. – duffymo

+0

@RyanSaxe Tôi khá chắc chắn điều bạn đề xuất không giống như điều này và trên thực tế, không hoạt động. – zwol

0

Một giải pháp tốt hơn là sử dụng các chuỗi chữ như r'pathname \ filename' chứ không phải 'tên đường dẫn \ filename'. Xem Lexical Analysis để biết thêm chi tiết.

2

Nếu bạn chắc chắn đường dẫn là chính xác, hãy đảm bảo không có chương trình nào khác mở tệp. Tôi đã nhận được lỗi đó một lần và đóng tệp Excel khiến lỗi này biến mất.

2

Tôi cũng gặp vấn đề tương tự và giải quyết vấn đề đó.

Kiểm tra đường dẫn của bạn cho các tập tin một cách chính xác

tôi ban đầu có con đường như

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

này trả về một lỗi bởi vì con đường đã sai .Sau đó tôi đã thay đổi con đường như below.This là làm việc khỏe.

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

Điều này là do con đường trước đây của tôi đã không được correct.Hope bạn nhận được nó reolved

+0

Tôi bị nhầm lẫn bởi mã đã sửa của bạn. Dường như bạn đã gõ 'dfTrain =' và '\\ labelTrainData.tsv' hai lần, nhưng nếu bạn đã xóa cả hai, đường dẫn ban đầu giống như đường dẫn này. Am i thiếu cái gì ở đây? – StayFoolish

Các vấn đề liên quan