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

Python Pandas赋值后df与df_LtC未分离,df_LtC莫名新增rolling列问题

pandas修改赋值后的DataFrame同步修改原对象问题解答

问题原因

Python中对DataFrame这类可变对象执行普通赋值操作=时,是引用传递,不会生成新的独立对象。执行df=df_LtC仅相当于给内存中的同一份DataFrame数据绑定了两个变量名,两者指向完全相同的内存地址,因此修改df的列结构、数值时,df_LtC也会同步变化。

解决方案

要生成与原DataFrame完全独立的副本,调用pandas内置的copy()方法即可,默认执行深拷贝,会将原数据完整复制到新的内存空间,后续两个对象的操作互不影响。
正确代码示例:

df = df_LtC.copy()
df["rolling"] = df["ln_ret"].rolling(window=2).mean() * 2

如果确认不需要复制嵌套的可变性对象,可以使用浅拷贝df = df_LtC.copy(deep=False)减少内存占用,普通数据分析场景下使用默认的深拷贝即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:15:04