我尝试使用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)
尝试:
chunksize
(2000或50000)-失败(4GB文件的内存错误)请让我知道如何继续进行操作?
我使用python 3.7和8GB RAM。
我还在具有128GB RAM的服务器上尝试了Attempt 3,但仍然是
memory error
我无法分配
dtype
,因为要导入的csv文件可能在不同的时间包含不同的列
答案 0 :(得分:0)
已经在这里得到回答: How to read a 6 GB csv file with pandas
我还尝试了使用2GB文件的上述方法,并且有效。
还尝试使块大小更小。
您是否也可以共享系统配置,这将非常有用
答案 1 :(得分:0)
我只想记录下获得足够建议后的尝试!感谢Robin Nemeth和juanpa
正如juanpa所指出的,我能够在其中读取csv文件(4GB)
我使用64bit python
可执行文件
就像罗宾指出的那样,即使具有64位可执行文件,我也无法 读取具有 8GB RAM 的本地计算机中的csv文件(4GB)。
因此,无论我们尝试使用哪种机器的RAM,因为数据帧在内存中使用