首页 > 解决方案 > 自定义数据透视函数导致高页面错误率和句柄

问题描述

我有一个大约 1700 万行和 7 列的(大)数据框,我想根据两个唯一列转置(枢轴)。由于内存限制,我无法使用该pandas.pivot_table功能。因此,我试图创建自己的一段代码,逐行转置这个数据帧。代码可见:https ://bpaste.net/show/xRyQ

不幸的是,过了一段时间,我的页面错误率和句柄数开始急剧增加。此外,我的非分页内存基本上为零。目前我不确定这是否是由于内存泄漏,或者这基本上是由于我的“新的、旋转的数据帧”的大小增加并因此消耗了内存。

因此,我的两个核心问题是:

我的硬件规格是:

提前谢谢您,如果您有任何其他问题,请告诉我:)

标签: pythonpandasmemorymemory-managementpandas-groupby

解决方案


正如您pivot_df事先知道您的大小一样,最好预先分配整个 pivot_df 然后填充行,而不是逐行追加导致每次复制数据帧(另请参见此答案)。


推荐阅读