我正在尝试使用pandas read_csv读取大型(~24GB)CSV。 这就是我的工作:
import pandas as pd
import time
sum = 0
start = time.time()
for chunk in pd.read_csv('large_iris.csv', iterator=True, chunksize=100):
sum=sum+chunk.species.count()
end = time.time()
我的内存不足错误如下:
python(5741,0x7fffc81cc3c0) malloc: *** mach_vm_map(size=18446744071629176832) failed (error code=3)
***错误:无法分配区域
我试图尝试几个chunksize值,范围从100到1000000.无论块大小如何,问题仍然存在。
我是否误解了read_csv如何使用chunksize。我知道用一个相当小的chunksize迭代数据应该可以解决我看到的内存不足问题。 我发现其他帖子建议使用chunksize来解决内存不足的问题。但是,当提供有效的chunksize时,我无法找到有关内存不足问题的帖子。
感谢您的帮助!
答案 0 :(得分:0)
似乎问题是损坏的CSV文件。 迭代" large_iris.csv"一行一行,某行被解释为异常大,导致内存不足问题。 上面的代码段适用于其他格式良好的CSV文件。