【发布时间】:2018-04-25 00:41:21
【问题描述】:
我想知道当我们选择就地操作数据帧(与非就地相比)时,内存使用是否会显着减少。
我在 Stack Overflow 上进行了一些搜索,发现了这个 post,其中的答案指出,如果没有就地完成操作,则会返回数据帧的副本(我想这有点明显当有一个名为'inplace'的可选参数时:P)。
如果我不需要保留原始数据框,那么只修改数据框会是有益的(并且合乎逻辑的)对吗?
上下文:
当按数据框中的特定“列”排序时,我试图获取顶部元素。我想知道这两个中哪一个更有效:
就地:
df.sort('some_column', ascending=0, inplace=1)
top = df.iloc[0]
对
复制:
top = df.sort('some_column', ascending=0).iloc[0]
对于“复制”情况,即使我没有将副本分配给变量,它仍然会在排序时分配内存来制作副本,对吗?如果是这样,从内存中释放该副本需要多长时间?
提前感谢您的任何见解!
【问题讨论】:
-
在 jupyter 中执行并通过 %%time 比较执行时间。或选择其他工具来衡量性能
-
我更关心内存使用情况,所以我将尝试“python 内存分析器”。我忘记了那个模块......我只是想知道是否有人可以给我一个快速的概念性答案。
-
如果您的问题得到解答,请accept an answer。
-
没有完全回答...