gpt4 book ai didi

python - DataFrame 到 Panel 通过 Pandas 的非唯一列索引

转载 作者:行者123 更新时间:2023-12-01 06:04:02 29 4
gpt4 key购买 nike

下面的代码应该可以实现我想要的功能,但是当循环完成 20% 时,它需要 10GB 的内存。

# In [4]: type(pd)
# Out[4]: pandas.sparse.frame.SparseDataFrame
memid = unique(pd.Member)
pan = {}
for mem in memid:
pan[mem] = pd[pd.Member==mem]
goal = pandas.Panel(pan)

最佳答案

我在这里创建了一个 GitHub 问题。

https://github.com/wesm/pandas/issues/663

我很确定我发现了 NumPy ndarray View 之间的循环引用导致内存泄漏。刚刚提交了修复:

https://github.com/wesm/pandas/commit/4c3916310a86c3e4dab6d30858a984a6f4a64103

您可以从源代码安装并让我知道这是否可以解决您的问题吗?

顺便说一句,您可以尝试使用 SparsePanel 而不是 Panel,因为 Panel 会将所有子 DataFrame 转换为密集形式。

最后,您可以考虑使用 groupby 作为 O(N * M) 分割 SparseDataFrame 的替代方案。它甚至更短:


pan = dict(pd.groupby('成员'))

关于python - DataFrame 到 Panel 通过 Pandas 的非唯一列索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8957175/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com