簡體   English   中英

Pandas - 導入大小為4GB的CSV文件時出現內存錯誤

[英]Pandas - memory error while importing a CSV file of size 4GB

我嘗試使用pd.read_csv導入大小為4GB的csv文件,但收到內存不足錯誤。 然后嘗試使用dask.dataframe ,但無法轉換為pandas dataframe (相同的內存錯誤)。

import pandas as pd
import dask.dataframe as dd
df = dd.read_csv(#file)
df = df.compute()

然后嘗試使用chunksize參數,但內存錯誤相同:

import pandas as pd
df = pd.read_csv(#file, chunksize=1000000, low_memory=False)
df = pd.concat(df)

還嘗試使用帶有列表的chunksize ,同樣的錯誤:

import pandas as pd
list = []
for chunk in pd.read_csv(#file, chunksize=1000000, low_memory=False)
    list.append(chunk)
df = pd.concat(list)

嘗試:

  1. 嘗試文件大小1.5GB - 成功導入
  2. 嘗試文件大小4GB - 失敗(內存錯誤)
  3. 嘗試使用低chunksize (2000或50000) - 失敗(4GB文件的內存錯誤)

請告訴我如何進一步處理?

我使用python 3.7和RAM 8GB。

我還在一台RAM為128GB的服務器上嘗試了嘗試3,但仍然存在memory error

我無法分配dtype因為要導入的csv文件可以在不同的時間包含不同的列

這里已經回答: 如何閱讀帶有pandas的6 GB csv文件

我也嘗試使用2GB文件的上述方法,它的工作原理。

還要盡量保持塊大小更小。

您是否可以共享系統的配置,這將非常有用

我只是想在得到足夠的建議后記錄我嘗試過的內容! 感謝Robin Nemeth和juanpa

  1. 正如juanpa指出的那樣,當我使用64bit python可執行文件時,我能夠在服務器中讀取帶有128GB RAM的csv文件(4GB)

  2. 正如Robin指出,即使使用64位可執行文件,我也無法在本地機器上讀取帶有8GB RAM的csv文件(4GB)。

因此,無論我們嘗試什么,機器的RAM都與數據幀在內存中的使用一樣重要

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM