我正在进行沃尔玛KaGle竞争,我正试图创建一个“FielelNeNoNo”列的虚拟列。对于上下文,df.shape
返回(647054, 7)
。我试图为df['FinelineNumber']
创建一个虚拟列,它有5196个唯一值。结果应该是形状(647054, 5196)
的数据文件,然后我打算将concat
原数据文件。
几乎每次运行fineline_dummies = pd.get_dummies(df['FinelineNumber'], prefix='fl')
,我都会收到下面的错误信息:cc>我在Pythter笔记本上运行Python 2.7,在16BRAM的MaBooPro上运行。
有人能解释为什么会发生这样的事情(为什么大部分时间都会发生,但不是每次都发生)?是笔记本还是熊猫虫?此外,我认为它可能与RAM不足,但我在微软Azure机器学习笔记本上有相同的错误,它的内存为100 GB。在Azure ML,内核每次死亡-几乎立即。
最佳答案
这很大程度上可能是内存使用情况—6470545196数据帧有3362092584个元素,这将是24GB,仅用于指向64位系统上的对象的指针。在azureml上,当vm有大量内存时,实际上您的可用内存是有限的(当前为2gb,很快将为4gb),当您达到这个限制时,内核通常会死掉。所以很可能是内存使用问题。
在执行任何其他操作之前,您可以先尝试对数据帧执行.to_sparse()。这将允许熊猫将大部分数据帧保留在内存之外。