python – pandas数据帧的最大大小
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – pandas数据帧的最大大小,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1817字,纯文字阅读大概需要3分钟。
内容图文
![python – pandas数据帧的最大大小](/upload/InfoBanner/zyjiaocheng/702/77a21d1c3fad45d0a856195912dc2aeb.jpg)
我正在尝试使用pandas read_csv或read_stata函数读取一个有点大的数据集,但我一直在遇到内存错误.数据帧的最大大小是多少?我的理解是,只要数据适合内存,数据帧就应该没问题,这对我来说应该不是问题.还有什么可能导致内存错误?
对于上下文,我试图在Survey of Consumer Finances 2007中读取,包括ASCII格式(使用read_csv)和Stata格式(使用read_stata).该文件大约为200MB作为dta,大约1.2GB作为ASCII,并且在Stata中打开它告诉我,有2200个观察/行有5,800个变量/列.
解决方法:
我将按照评论中的讨论发布这个答案.我已经看到它多次出现而没有接受的答案.
内存错误很直观 – 内存不足.但有时候这个错误的解决方案或调试是令人沮丧的,因为你有足够的内存,但错误仍然存??在.
1)检查代码错误
这可能是一个“愚蠢的步骤”,但这就是为什么它是第一个.确保没有无限循环或有意识地花费很长时间的东西(比如使用os模块来搜索整个计算机并将输出放在excel文件中)
2)提高代码效率
沿着第1步的路线前进.但是如果简单的事情需要花费很长时间,那么通常会有一个模块或更好的方法来做更快,更有效的内存.这就是Python和/或开源语言的美妙之处!
3)检查对象的总内存
第一步是检查对象的内存. Stack上有大量关于此的线程,因此您可以搜索它们.热门答案是here和here
要在咬合中找到对象的大小,您始终可以使用sys.getsizeof():
import sys
print(sys.getsizeof(OBEJCT_NAME_HERE))
现在错误可能在创建任何内容之前发生,但如果您以块的形式读取csv,则可以看到每个块使用了多少内存.
4)运行时检查内存
有时你有足够的内存,但你运行的功能在运行时会占用大量内存.这会导致内存超出最终对象的实际大小,从而导致代码/进程出错.实时检查内存很长,但可以完成. Ipython很好.检查Their Document.
使用下面的代码直接在Jupyter Notebook中查看文档:
%mprun?
%memit?
样品用途:
%load_ext memory_profiler
def lol(x):
return x
%memit lol(500)
#output --- peak memory: 48.31 MiB, increment: 0.00 MiB
如果您需要有关魔术功能This is a great post的帮助
5)这个可能是第一个….但检查简单的事情,如位版本
在您的情况下,您正在运行的python版本的简单切换解决了这个问题.
通常上述步骤解决了我的问题.
内容总结
以上是互联网集市为您收集整理的python – pandas数据帧的最大大小全部内容,希望文章能够帮你解决python – pandas数据帧的最大大小所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。