首页 > 解决方案 > 使用fillna()导致python内存错误的原因

问题描述

我收到以下错误

numpy.core._exceptions.MemoryError:无法分配具有形状(1329、22474)和数据类型 float64 的数组

这是我的代码:

interactions_df = pd.DataFrame(list(DB[USER_COLLECTION].find({})))
interactions_full_df = interactions_df.groupby(['personId', 'contentId'])[
    'eventStrength'].sum().apply(smooth_user_preference).reset_index()
users_items_pivot_matrix_df = interactions_full_df.pivot(index='personId',  # edited: interactions_train_df
                                                         columns='contentId',
                                                         values='eventStrength').fillna(0)
users_items_pivot_matrix = users_items_pivot_matrix_df.as_matrix()
users_ids = list(users_items_pivot_matrix_df.index)

USER_COLLECTION中,我有 30009 个文档和 4 列:_id, personId(string), eventStrength(double), contentId(int32),我尝试设置增加 ram 但它不起作用,仍然无法弄清楚。

更新:在windows上通过最大内存80000 MB和初始大小5500 MB设置自定义虚拟内存后,重新启动系统,它仍然有内存错误。

标签: pythondataframeout-of-memorynumpy-ndarrayfillna

解决方案


推荐阅读