我想加載大量的.csv(3.4米行,206K用戶)開源數據集從InstaCart https://www.instacart.com/datasets/grocery-shopping-2017加載大型數據集到大熊貓的Python
基本上,我有麻煩了裝載orders.csv成熊貓數據幀。我想了解將大文件加載到Pandas/Python中的最佳實踐。
我想加載大量的.csv(3.4米行,206K用戶)開源數據集從InstaCart https://www.instacart.com/datasets/grocery-shopping-2017加載大型數據集到大熊貓的Python
基本上,我有麻煩了裝載orders.csv成熊貓數據幀。我想了解將大文件加載到Pandas/Python中的最佳實踐。
最佳選擇是以塊爲單位讀取數據,而不是將整個文件加載到內存中。
幸運的是,read_csv
方法接受chunksize
的說法。
for chunk in pd.read_csv(file.csv, chunksize=somesize):
process(chunk)
注意:通過指定chunksize
到read_csv
或read_table
,則返回值將是TextFileReader
類型的iterable
對象:
另見:
如果您的大數據幀可能不適合內存,則dask非常有用。我已經鏈接到的主頁有關於如何創建與pandas相同但可以分發API的dask數據框的示例。
根據您的機器,您可以通過在讀取csv文件時指定數據類型來讀取它在內存中的全部內容。當熊貓讀取csv時,使用的默認數據類型可能不是最好的。使用dtype
您可以指定數據類型。它減少了讀入內存的數據幀的大小。