2012-03-11 22 views
49

Tôi mới đến trăn và gấu trúc. Tôi đang cố gắng tải tệp tsv vào gấu trúc DataFrame.Làm cách nào để tải tệp tsv vào Khung dữ liệu Pandas?

Đây là những gì tôi đang cố gắng và lỗi tôi nhận được:

>>> df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t')) 

Traceback (most recent call last): 
    File "<pyshell#28>", line 1, in <module> 
    df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t')) 
    File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 318, in __init__ 
    raise PandasError('DataFrame constructor not properly called!') 
PandasError: DataFrame constructor not properly called! 
+1

Đối với những người đến câu trả lời này trong năm 2017+, sử dụng 'read_csv ('path_to_file', sep = '\ t')'. Xem [câu trả lời dưới đây] (https://stackoverflow.com/a/34548894/3707607) –

Trả lời

60

Các tài liệu liệt kê một hàm .from_csv xuất hiện để làm những gì bạn muốn:

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t') 

Nếu bạn có một tiêu đề, bạn có thể vượt qua header=0.

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t', header=0) 
+3

Tôi đã có một số vấn đề với phương pháp này - nó đã được rất chậm và thất bại lập chỉ mục ở cuối. Thay vào đó, tôi đã sử dụng read_table(), nó hoạt động nhanh hơn nhiều và không có tham số phụ. – Yurik

+0

Tôi nhận được 'các cột' trống và dữ liệu là một đống lộn xộn, có thể đọc tab được phân tách bằng .txt với tiêu đề là dòng đầu tiên, tôi đoán là không. –

+7

Lưu ý rằng từ 17.0 'from_csv' không được khuyến khích: hãy sử dụng' pd.read_csv' để thay thế! – rafaelvalle

39

Sử dụng read_table(filepath). Dấu tách mặc định là tab

+0

read_table không yêu cầu bất kỳ thông số nào. Làm việc hoàn hảo. – Jay

38

Kể từ 17.0 from_csv không được khuyến khích.

Sử dụng pd.read_csv(fpath, sep='\t') hoặc pd.read_table(fpath).

1

tập tin mở, save as .csv và sau đó áp dụng df = pd.read_csv ('apps.csv', tháng chín = '\ t')

đối với bất kỳ định dạng khác cũng có, chỉ cần thay đổi thẻ tháng chín