擅长:python、mysql、java
<p><strong>否</strong>,您不应该逐行构建数据帧。每次这样做,整个数据帧都必须被复制(它不是在内部扩展的),所以您使用的是n+(n-1)+(n-2)+。。。+1,O(n^2),内存(必须垃圾收集)。。。太可怕了,所以要花几个小时!</p>
<p>您想使用^{cd1>},您有几个选项:</p>
<ul>
<li><p>一次读取整个文件(即使只需几吉ram,700mb也可以)。</p>
<pre><code>pd.read_csv('your_file.csv')
</code></pre></li>
<li><p>在csv中以块形式读取,然后将它们粘在一起(在内存中)。。。我想这并不会比上面的记忆少,但是如果你在这一步上大嚼一口,它通常是有用的。</p>
<pre><code>pd.concat(pd.read_csv('foo.csv', chunksize=100000)) # not sure what optimum value is for chunksize
</code></pre></li>
<li><p>将csv分块读取并保存到pytables(而不是内存中),如果您的数据多于内存(并且您已经购买了更多内存),那么使用pytables/hdf5!</p>
<pre><code>store = pd.HDFStore('store.h5')
for df in pd.read_csv('foo.csv', chunksize=100000):
store.append('df', df)
</code></pre></li>
</ul>