Получить повторные атрибуты / столбцы Python
Я пытаюсь получить заголовки столбцов повторного массива и сталкиваюсь со значительными проблемами. Если я читаю в файле.csv с помощью функции pylab csv2rec, я могу получить доступ к заголовкам столбцов следующим образом:
from pylab import csv2rec
x = csv2rec(file.csv)
x.column1
x.column2
Где 'column1' - это заголовок первого столбца, и он будет возвращать остальные значения в столбце. Но я читаю в файле.csv, где я не знаю, каковы все значения заголовков столбцов, и я хочу иметь возможность получить к ним доступ (либо выполнить цикл, либо задать список). Кажется, это должно быть просто. Есть идеи?
1 ответ
Ты можешь использовать 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')
Или, используя ваш пример:
[physics@aurora ~/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