2011-12-16 13 views
5

Próbuję odzyskać tytuły kolumn rekolekuł i napotykają poważne problemy. Jeśli czytam w pliku .csv używając csv2rec funkcję pylab za, jestem w stanie uzyskać dostęp tytuły kolumn w następujący sposób:Pobierz rekolorowane atrybuty/kolumny python

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

Gdzie kolumna1 "to tytuł pierwszej kolumnie, i byłoby powrócić resztę wartości w kolumnie. Ale czytam w pliku .csv, w którym nie wiem, jakie są wszystkie wartości tytułów kolumn, i chcę mieć do nich dostęp (albo przeprowadź przez nie pętlę, albo ustaw listę). Wygląda na to, że powinno być proste. Jakieś pomysły?

Odpowiedz

7

Można użyć 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') 

Albo, używając przykładu:

[[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 
Powiązane problemy