当前位置:  开发笔记 > 编程语言 > 正文

使用pandas创建虚拟变量时,Jupyter笔记本内核会死掉

如何解决《使用pandas创建虚拟变量时,Jupyter笔记本内核会死掉》经验,为你挑选了1个好方法。

我正在参加Walmart Kaggle比赛,我正在尝试创建一个"FinelineNumber"栏目的虚拟列.对于上下文,df.shape返回(647054, 7).我正在尝试制作一个虚拟列df['FinelineNumber'],它有5,196个唯一值.结果应该是形状的数据框(647054, 5196),然后我计划到concat原始数据框.

几乎每次我运行时fineline_dummies = pd.get_dummies(df['FinelineNumber'], prefix='fl'),我得到以下错误消息The kernel appears to have died. It will restart automatically.我在具有16GB RAM的MacBookPro上的jupyter笔记本中运行python 2.7.

有人可以解释为什么会发生这种情况(以及为什么它发生在大多数时间但不是每次都发生)?它是一个jupyter笔记本或熊猫bug?此外,我认为它可能与RAM不足,但我在具有> 100 GB RAM的Microsoft Azure机器学习笔记本上得到相同的错误.在Azure ML上,内核每次都会死掉 - 几乎立刻就会死掉.



1> Dino Viehlan..:

它可能是内存使用 - 647054,5196数据帧有3,362,092,584个元素,对于64位系统上的对象指针,它只有24GB.在AzureML上,当VM拥有大量内存时,实际上你可用的内存数量有限(目前是2GB,很快就是4GB) - 当你达到极限时,内核通常会死掉.所以它似乎很可能是内存使用问题.

在进行任何其他操作之前,您可能首先尝试对数据框执行.to_sparse().这应该允许Pandas将大部分数据帧保留在内存之外.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有