You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何复制后的DataFrame dg修改时原DataFrame df的值也会变化?

问题原因解析

这是因为Python里,像Pandas DataFrame这类可变对象的赋值操作,传递的是对象的引用,而非创建新的独立副本。

具体细节:

  • 执行dg = df时,并没有生成新的DataFrame,只是让变量dg和df指向了内存中同一个DataFrame实例。
  • 后续修改dg["priority"],本质是直接修改了这个共享的DataFrame对象,所以原df的对应列也会跟着变化。

解决办法

如果想让dg成为独立的副本,修改它不影响原df,可以用以下两种方式:

  1. 深拷贝(完全复制所有数据和结构):
dg = df.copy()
dg["priority"] = dg["priority"].map({"yes":True, "no":False})
  1. 浅拷贝(仅复制顶层结构,嵌套对象仍共享,适合不需要完全隔离嵌套数据的场景):
dg = df.copy(deep=False)
dg["priority"] = dg["priority"].map({"yes":True, "no":False})

内容的提问来源于stack exchange,提问作者baring

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 00:01:22