我正在尝试使用MultiIndex(3级)和大约900'000x4的DataFrame
运行sortlevel(0,0)。
>>>data.as_matrix().shape
(899262, 4)
>>>data.sortlevel(0,0) #<--- throws MemoryError almost instantaneous
我正在运行Windows Vista(不甘心),据我所知,一个进程只能分配大约2GB的RAM,但我看不出.sortlevel如何真正使用这么多的RAM?什么算法用于排序?是否有任何走路以同样的方式对其进行排序?
编辑只是按旧习惯在ipython中进行测试。
答案 0 :(得分:1)
在 ipython 中使用run filename.py
似乎是一个问题,它出于某种原因在命令提示符下使用了比普通 python 更多的RAM。
答案 1 :(得分:0)
在一些地方,当涉及MultiIndex时,大熊猫并不像关于内存使用一样小心 - 如果你找到一个重现问题的案例,请将其发布在问题跟踪器上。
答案 2 :(得分:0)
当从IPython运行模块时,我遇到了排序大型DataFrame的相同MemoryError问题。
如果你有一个64位处理器,操作系统和超过2GB的RAM另一个解决方案就是运行64位Python,你可以获得一个预打包的64位版本的Python,如Anaconda Community Edition或get the unofficial 64 binaries