我想知道为什么pandas
在重新索引系列时会占用大量内存。
我创建了一个简单的数据集:
a = pd.Series(np.arange(5e7, dtype=np.double))
根据top
我的 Ubuntu,整个会话大约 820MB。
现在,如果我将其切片以提取前 100 个元素:
a_sliced = a[:100]
这表明没有增加内存消耗。
相反,如果我a
在同一范围内重新索引:
a_reindexed = a.reindex(np.arange(100))
我的内存消耗约为 1.8GB。也尝试清理gc.collect
但没有成功。
我想知道这是否是预期的,以及是否有一种解决方法可以在没有大量内存开销的情况下重新索引大型数据集。
我正在使用pandas
来自 github 的最新快照。