我知道之前已经问过与内存错误相关的问题,例如 here 、 here 、 here 、 here 或 here 。建议的解决方案始终是切换到 Python 3 和/或 Window 64 位,或者在出现错误代码的情况下修复代码。但是,我已经在使用 Python 3 和 Win 64。我还可以从 Windows 任务管理器中看到,当 Python 抛出内存错误时,我的 64GB RAM 中仍有几 GB 可用。
我有大约 15 个日期索引的 pandas 数据帧,每个数据帧有 14000 行,平均有 5000 列浮点数据,以及大约 40-50% 的 NaN 值,我从硬盘读取这些数据。我不能简单地删除 NaN,因为不同的列在不同的日期有 NaN。当我尝试将它们与 pd.concat()
连接时发生内存错误。所以这不是一些错误代码或 while 循环的问题。如果我将某些数据帧留在串联之外,则串联不会发生内存错误,但是当我尝试对串联数据进行 Scikit 学习决策树分析时,它会发生。
我的问题 是如何让 Python 使用所有可用内存而不抛出内存错误?
编辑:截图添加了 IPython 解释器截图(我什至没有安装 Python 2):
原文由 Saeed 发布,翻译遵循 CC BY-SA 4.0 许可协议
这里有一些链接,其中包含他们提供的信息片段,希望对您有所帮助。
如何给程序更多的内存
你如何设置python程序的内存使用
分配内存申请
分配内存进程服务器
其他
http://stackoverflow.com/questions/1760025/limit-python-vm-memory
http://stackoverflow.com/questions/2308091/how-to-limit-python-heap-size