0

我正在尝试DataFrame使用 MultiIndex(3 个级别)和大约 900'000x4 的大小在 a 上运行 sortlevel(0,0)。

>>>data.as_matrix().shape
(899262, 4)
>>>data.sortlevel(0,0) #<--- throws MemoryError almost instantaneous

我正在运行 Windows Vista(不愿意),据我了解,一个进程只能分配大约 2GB 的 RAM,但我看不出 .sortlevel 如何真正使用这么多的 RAM?排序使用什么算法?是否有任何解决方法可以以相同的方式对其进行排序?

编辑只按照旧习惯在 ipython 中测试它。

4

3 回答 3

1

run filename.pyipython中使用似乎是一个问题,由于某种原因,它使用了比命令提示符下的普通python更多的 RAM。

于 2012-08-16T16:11:34.480 回答
0

在某些地方,pandas 对 MultiIndex 的内存使用情况可能没有那么小心——如果您确实找到了重现问题的案例,请将其发布在问题跟踪器上。

于 2012-09-09T21:11:52.593 回答
0

当从 IPython 运行模块时,我在排序大型 DataFrames 时遇到了相同的 MemoryError 问题。

如果您有 64 位处理器、操作系统和超过 2GB 的 RAM,另一个解决方案是运行 64 位 Python,您可以获得预打包的 64 位版本的 Python,如Anaconda 社区版获得非官方的 64 位二进制文​​件

于 2012-11-26T16:07:45.170 回答