擅长:python、mysql、java
<p>我建议您对此使用numpy数组,例如:</p>
<pre><code>def read_csv(fname):
import csv
reader = csv.reader(open(fname))
names = reader.next()[1:] # first row
n = len(names)
data = np.empty((n, n), np.int32)
tag_map = {name:i for i, name in enumerate(names)}
for row in reader:
tag = row[0]
data[tag_map[tag], :] = row[1:]
return names, data
</code></pre>
<p>我不知道为什么<code>int32</code>比<code>float32</code>慢,但是<code>DataFrame</code>按列存储数据,按<code>df.loc[tag] = ...</code>设置每列的元素很慢。在</p>
<p>如果您需要访问标签,可以使用<a href="http://xarray.pydata.org/en/stable/examples/quick-overview.html#create-a-dataarray" rel="nofollow noreferrer">xarray</a>:</p>
^{pr2}$