This question already has answers here:
Understanding inplace=True
(11个答案)
在11个月前关闭。
我想知道当我们选择就地(而不是就地)操作数据帧时,内存使用量是否有显着减少。
我在Stack Overflow上做了一些搜索,并遇到了这个post,其中答案指出,如果未就地完成操作,则将返回数据帧的副本(我想当有一个可选参数时,这会很明显称为“inplace”:P)。
如果我不需要保留原始数据框,那么仅修改数据框就对,这将是有益的(逻辑上的)吗?
上下文:
我试图在数据框中按特定“列”排序时获得顶部元素。我想知道这两个中哪个更有效:
到位:
与
复制:
对于“副本”情况,即使我没有将副本分配给变量,它在排序时仍会在创建副本时分配内存。如果是这样,从内存中取消分配该副本要花费多长时间?
感谢您提前获得任何见解!
(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