使用pandas加载大型CSV文件

4

我正在尝试使用pandas将大小约为250 MB的csv文件加载为数据框。在第一次尝试中,我使用了典型的read_csv命令,但是收到了内存错误。 我已经尝试过在Large, persistent DataFrame in pandas中提到的方法,使用块:

x=pd.read_csv('myfile.csv', iterator=True, chunksize=1000)
xx=pd.concat([chunk for chunk in x], ignore_index=True)

但是当我尝试连接时,我收到了以下错误提示:异常:“所有传递的对象都是无效的”。事实上,我无法访问这些块。

我正在使用WinPython 3.3.2.1(32位)和Pandas 0.11.0。


你解决了这个问题吗?你升级到了 pandas 0.12.0 吗? - smci
是的,我安装了最新的WinPython 64位版本,并且它可以处理我的文件。不过我还需要用更大的文件进行测试。 - user2082695
2个回答

2

我建议您安装64位版本的WinPython。这样,您就可以轻松加载250 MB的文件,而不会遇到任何问题。


0

我来晚了,但是发布的代码实际问题在于使用 pd.concat([chunk for chunk in x]) 有效地取消了分块的任何好处,因为它将所有这些块连接成一个大的 DataFrame。
这可能甚至需要两倍的内存。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接