This question already has answers here:
Understanding inplace=True

(11个答案)


在11个月前关闭。




我想知道当我们选择就地(而不是就地)操作数据帧时,内存使用量是否有显着减少。

我在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]

对于“副本”情况,即使我没有将副本分配给变量,它在排序时仍会在创建副本时分配内存。如果是这样,从内存中取消分配该副本要花费多长时间?

感谢您提前获得任何见解!

最佳答案

通常,inplace=True与返回显式副本之间没有区别-在两种情况下,都会创建一个副本。碰巧的是,在第一种情况下,副本中的数据被复制回原始df对象,因此无需重新分配。

此外,请注意,自v0.21以来,不建议使用df.sort,请改为使用 sort_values

关于python - Pandas 在原地与非原地操作DataFrame(inplace = True vs False),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47245583/

10-08 20:34