2014-12-31 70 views
2

我有一個巨大的22 GB csv文件,其中包含矩陣10000 x 10000條目。但實際上我只需要一小部分文件來達到我的目的,這可以很好地適應我的4 GB內存。無論如何要延遲加載CSV到我的系統,以便我只需要選擇文件的一些非傳染性部分,說25個不同的特定行。我聽說熊貓的iterator是一塊一塊地加載數據,但我仍然不確定它的內存需求。延遲加載csv與熊貓

+6

有許多的選擇,如'nrows','chunksize','skiprows'應該做你想要什麼,看文檔:http://pandas.pydata.org/pandas-docs/穩定/ io.html#IO-讀CSV表 – EdChum

回答

2

對於少數線路,請嘗試使用linecache並手動創建熊貓數據幀。

例如,以下代碼將第12,24和36行(1索引)放入DataFrame中。

import linecache 
from pandas import DataFrame 

filename = "large.csv" 
indices = [12,24,36] 

li = [] 
for i in indices: 
    li.append(linecache.getline(filename, i).rstrip().split(',')) 

dataframe = DataFrame(li)