我想知道当我们选择就地操作数据帧时(与没到位).
我在 Stack Overflow 上做了一些搜索,发现了这个post https://stackoverflow.com/questions/43893457/python-pandas-understanding-inplace-true其中答案指出,如果操作未就地完成,则返回数据帧的副本(我想当有一个名为“inplace”的可选参数时,这有点明显:P)。
如果我不需要保留原始数据框,那么修改数据框是有益的(并且符合逻辑),对吗?
Context:
我试图在按数据框中的特定“列”排序时获取顶部元素。我想知道这两个中哪个更有效:
到位:
df.sort('some_column', ascending=0, inplace=1)
top = df.iloc[0]
vs
copy:
top = df.sort('some_column', ascending=0).iloc[0]
对于“复制”情况,即使我没有将副本分配给变量,它仍然会在排序时分配内存来制作副本,对吗?如果是这样,从内存中释放该副本需要多长时间?
感谢您提前提供任何见解!
一般来说,两者之间没有区别inplace=True
并返回显式的副本both情况下,会创建一个副本。恰好,在第一种情况下,副本中的数据被复制回原始数据中df
对象,因此不需要重新分配。
此外,请注意,截至v0.21
, df.sort
已弃用,请使用sort_values http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.DataFrame.sort_values.html反而。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)