假設我有一個包含400列的csv文件。我無法將整個文件加載到DataFrame中(不適合內存)。但是,我只想要50列,這將適合內存。我沒有看到任何內置熊貓的方式來做到這一點。你有什麼建議?我願意使用PyTables接口或pandas.io.sql。如何將csv文件中的特定列加載到DataFrame中
最好的情況將是一個函數,如:pandas.read_csv(....,columns = ['name','age',...,'income'])。即我們傳遞將要加載的列名稱(或數字)的列表。
假設我有一個包含400列的csv文件。我無法將整個文件加載到DataFrame中(不適合內存)。但是,我只想要50列,這將適合內存。我沒有看到任何內置熊貓的方式來做到這一點。你有什麼建議?我願意使用PyTables接口或pandas.io.sql。如何將csv文件中的特定列加載到DataFrame中
最好的情況將是一個函數,如:pandas.read_csv(....,columns = ['name','age',...,'income'])。即我們傳遞將要加載的列名稱(或數字)的列表。
現在沒有默認的方法來做到這一點。我建議分塊文件並迭代它並丟棄你不想要的列。 所以像pd.concat([x.ix[:, cols_to_keep] for x in pd.read_csv(..., chunksize=200)])
伊恩,我實施了usecols
選項,它完全符合你的描述。它將在即將到來的大熊貓0.10;開發版本即將推出。
由於0.10
,您可以使用usecols
像
df = pd.read_csv(...., usecols=['name', 'age',..., 'income'])