2013-09-03 60 views
5

Tôi đang sử dụng Enthought Canopy (một tập hợp nhiều gói Thư viện Python khác nhau, ví dụ: NumPy, Pandas, vv) để phân tích dữ liệu. Tôi đang cố gắng để đọc một tập tin văn bản và tạo ra một dataframe ra khỏi nó. Tệp văn bản có 1180598 hàng và 18 cột. Tất cả các cột đều có số trong chúng. Tôi đã viết mã sau đây để đọc và đặt tên cho cột dữ liệu:Làm thế nào để đọc một tệp văn bản lớn bằng Python?

from pandas import DataFrame, read_csv 
import matplotlib.pyplot as plt 

import pandas as pd 

print 'Pandas Version ' + pd.__version__ 
Pandas Version 0.12.0 

location=r'C:\UMAIR\Directed Studies\US-101 Data\Main Data\US-101-Main-Data\vehicle-trajectory-data\0750am-0805am\tra.txt' 

df=read_csv(location, names=['Vehicle ID','Frame ID','Total Frames','Global Time','Local X','Local Y','Global X','Global Y','Vehicle Length','Vehicle Width','Vehicle Class','Vehicle Velocity','Vehicle Acceleration','Lane Identification','Preceding Vehicle','Following Vehicle','Spacing','Headway']) 

df 
Out[41]: 
<class 'pandas.core.frame.DataFrame'> 
Int64Index: 1180598 entries, 0 to 1180597 
Data columns (total 18 columns): 
Vehicle ID    1180598 non-null values 
Frame ID    0 non-null values 
Total Frames   0 non-null values 
Global Time    0 non-null values 
Local X     0 non-null values 
Local Y     0 non-null values 
Global X    0 non-null values 
Global Y    0 non-null values 
Vehicle Length   0 non-null values 
Vehicle Width   0 non-null values 
Vehicle Class   0 non-null values 
Vehicle Velocity  0 non-null values 
Vehicle Acceleration 0 non-null values 
Lane Identification  0 non-null values 
Preceding Vehicle  0 non-null values 
Following Vehicle  0 non-null values 
Spacing     0 non-null values 
Headway     0 non-null values 
dtypes: float64(17), object(1) 

Như bạn có thể thấy từ Ra, tệp được đọc chỉ có 1 cột. Tôi nên làm gì để cho Python biết rằng tệp của tôi có 18 cột để nó được đọc theo cách nó có nghĩa là gì?

+0

xin gửi một mẫu của tập tin của bạn; bạn đã chỉ định dấu phân cách chưa? – Jeff

Trả lời

5

này sẽ nhập dữ liệu của bạn một cách chính xác:

df = pd.read_csv(location, names=names, header=None, delim_whitespace=True) 
Các vấn đề liên quan