2011-12-16 10 views
5

प्राप्त करें मैं पुनरावृत्ति के कॉलम शीर्षक को पुनर्प्राप्त करने और काफी परेशानी में भाग लेने की कोशिश कर रहा हूं। अगर मैं एक .csv फ़ाइल में पढ़ pylab के csv2rec समारोह का उपयोग कर, मैं निम्नलिखित तरीके से स्तंभ खिताब उपयोग करने में सक्षम हूँ:पुनरावृत्ति गुण/कॉलम पाइथन

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

जहाँ 'स्तम्भ 1' पहले कॉलम का शीर्षक है, और यह बाकी वापसी होगी कॉलम में मूल्यों का। लेकिन, मैं एक .csv फ़ाइल में पढ़ रहा हूं जहां मुझे नहीं पता कि कॉलम शीर्षक के सभी मूल्य क्या हैं, और मैं उन्हें एक्सेस करने में सक्षम होना चाहता हूं (या तो लूप के माध्यम से, या एक सूची सेट करें)। ऐसा लगता है कि यह सरल होना चाहिए। कोई विचार?

उत्तर

7

आप 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') 

या, अपने उदाहरण का उपयोग:

[[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 
संबंधित मुद्दे