这是github上解释的副本。
有 没有保证 ,一个
inplace*** 作实际上要快。通常,它们实际上是与副本相同的 *** 作,但是会重新分配顶级引用。
在这种情况下,性能差异的原因如下。
该
(df1-df2).dropna()调用将创建数据帧的一部分。当您应用新 *** 作时,这会触发
SettingWithCopy检查,因为它 可能
是副本(但通常不是)。
此检查必须执行垃圾回收以清除一些缓存引用,以查看它是否是副本。不幸的是,python语法使这种情况不可避免。
您只需要先制作一个副本就不会发生这种情况。
df = (df1-df2).dropna().copy()
接下来的
inplace*** 作将和以前一样出色。
我个人的看法:我 从不 使用就地 *** 作。语法较难阅读,没有任何优势。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)