2011-12-16 7 views
5

Sto cercando di recuperare i titoli delle colonne di un riepilogo e si stanno verificando notevoli problemi. Se ho letto in un file .csv utilizzando la funzione csv2rec di pylab, sono in grado di accedere ai titoli delle colonne nel modo seguente:Ottieni attributi/colonne di ricognizione python

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

Dove 'column1' è il titolo della prima colonna, e sarebbe tornare il resto dei valori nella colonna. Ma sto leggendo in un file .csv in cui non so quali siano tutti i valori dei titoli delle colonne, e voglio essere in grado di accedervi (in loop o impostare una lista). Sembra che dovrebbe essere semplice. Qualche idea?

risposta

7

È possibile utilizzare 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') 

Oppure, utilizzando il tuo esempio:

[[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 
Problemi correlati