Maximum size of pandas dataframe
我试图用
就上下文而言,我试图在2007年的消费者金融调查中阅读,包括ASCII格式(使用
我将发表评论中讨论过的答案。我见过很多次没有一个公认的答案。
内存错误是直观的-内存不足。但是,有时这个错误的解决方案或调试会令人沮丧,因为您有足够的内存,但是错误仍然存在。
1)检查代码错误
这可能是"愚蠢的一步",但这就是为什么它是第一步。确保不存在无限循环或有意花费很长时间的事物(例如使用
2)提高代码效率
按照步骤1的顺序进行。但如果简单的事情需要很长时间,通常会有一个模块或者更好的方法来做一些更快、更有效的记忆。这就是Python和/或开源语言的魅力所在!
3)检查对象的总内存
第一步是检查对象的内存。关于这一点,栈中有很多线程,所以您可以搜索它们。热门答案在这里和这里
要在咬伤中找到物体的大小,可以始终使用
1 2 | import sys print(sys.getsizeof(OBEJCT_NAME_HERE)) |
现在,错误可能在创建任何内容之前发生,但是如果您以块的形式读取csv,您可以看到每个块使用了多少内存。
4)运行时检查内存
有时您有足够的内存,但运行的函数在运行时会消耗大量内存。这会导致内存峰值超过完成对象的实际大小,从而导致代码/进程出错。实时检查内存很长,但可以完成。伊普生很擅长这个。检查他们的文件。
使用下面的代码直接查看Jupyter笔记本中的文档:
1 2 | %mprun? %memit? |
号
样品使用:
1 2 3 4 5 | %load_ext memory_profiler def lol(x): return x %memit lol(500) #output --- peak memory: 48.31 MiB, increment: 0.00 MiB |
如果你需要魔法功能方面的帮助,这是一个很好的帖子
5)这个可能是第一个……但是检查一些简单的东西,比如位版本
与您的情况一样,运行的Python版本的简单切换解决了这个问题。
通常上述步骤可以解决我的问题。