大多数 Pandas 用户对它的就地操作属性(inplace)都存在误解。他们深信使用该属性可以达到以下目的:
运行时间更短
降低内存使用量
当然,这种推理也是符合直觉的。
Inplace,顾名思义,必须在不创建新副本的前提下就地修改 DataFrame。因此,期待 inplace 会更高效是没问题的。
然而,很多时候往往事与愿违,使用 inplace 反而会降低性能,从下图中也可以明显看出:
显然,在大多数情况下,就地操作的速度是比较缓慢的。
与普遍看法相反,Pandas 的 inplace 操作从来不会阻止创建新副本。只是这些操作给新副本分配了相同的地址,所以给你的感觉好像没有创建副本。
但是在这个分配步骤中,Pandas 必须执行一些额外的检查——例如,SettingWithCopy,以确保 DataFrame 被正确修改。
有时,这可能是一个昂贵的操作。一般来说,并不能保证就地操作会更快,上图中的对比结果也证实了这一点。
此外,我特别不喜欢就地操作的一点就是它们会抑制方法链接的使用,用了 inplace 操作后,就不能再使用方法链接了。如下所示:
因此,如果非必要的话,我从不喜欢在 Pandas 中使用就地操作。当然事无绝对,存在即合理,是否使用 inplace 操作,取决于具体需求。
那么,在什么情况下你仍然更喜欢在 Pandas 中使用 inplace 操作呢?欢迎留言讨论。
推荐阅读👇👇👇
10个Python自动化脚本,简化日常工作任务,看看有没有适合你的!
Visual Studio Code:10个显著提升编码效率的关键功能和技巧!
Python自动化:10个令人惊叹的自动化脚本,拿来即用,总有一款适合你!
Python高级编程:Functools模块的8个高级用法,强烈建议添加到你的开发工具箱中!
Python编程技巧:那些年后悔没有早知道string模块的这些宝藏功能~~~
- END -
🌟 喜欢这篇文章吗?给个赞支持一下吧!🌟
如果你发现今天的内容对你有帮助,不妨点个赞并关注我,第一时间接收更多关于Python、数据分析和机器学习的深入分析和最新趋势。我们一起探索数据的力量,解锁AI的潜能。你的每一次互动都是对我的极大鼓励,也是我们共同成长的动力!

👇👇👇 关注并开启星标提醒,让知识与技能的火花不断在你的职业道路上燃烧吧!
原文作者:数据派探险家;如有侵权,请联系管理员删除。