2011-12-16 27 views
5

Tôi đang cố truy xuất các tiêu đề cột của một sự tái diễn và gặp sự cố đáng kể. Nếu tôi đọc trong một tập tin .csv sử dụng chức năng csv2rec pylab của, tôi có thể truy cập vào tiêu đề cột theo cách sau đây:Lấy các thuộc tính/cột tái phát python

from pylab import csv2rec 
x = csv2rec(file.csv) 
x.column1 
x.column2 

đâu column1 'là tiêu đề của cột đầu tiên, và nó sẽ trở lại với phần còn lại của các giá trị trong cột. Nhưng, tôi đang đọc trong một tập tin .csv mà tôi không biết tất cả các giá trị của các tiêu đề cột là gì, và tôi muốn có thể truy cập chúng (hoặc là lặp lại hoặc thiết lập một danh sách). Điều này có vẻ như nó phải đơn giản. Bất kỳ ý tưởng?

Trả lời

7

Bạn có thể sử dụng x.dtype.names:

>>> import numpy as np 

>>> a = np.array([0.1,0.2]) 
>>> b = np.array([0.3,0.4]) 
>>> dtype = {'names' : ['a','b'], 'formats' : ['f8', 'f8']} 
>>> c = np.rec.fromarrays([a,b], dtype = dtype) 
>>> c 
rec.array([(0.1, 0.3), (0.2, 0.4)], 
     dtype=[('a', '<f8'), ('b', '<f8')]) 
>>> print c.dtype.names 
('a', 'b') 

Hoặc, sử dụng ví dụ của bạn:

[[email protected] ~/calc ]$ cat csv.dat 
a,b 
0.1,0.3 
0.2,0.4 

In [1]: from pylab import csv2rec 

In [2]: x = csv2rec('csv.dat') 

In [3]: for name in x.dtype.names: 
    ...:   print name 
a 
b 
Các vấn đề liên quan