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

Pandas中replace操作同步修改关联原DataFrame的原因与解决方法

原因

pandas DataFrame是Python中的可变对象,df2 = df1的写法属于引用赋值,不会生成新的DataFrame对象,只是让df2和df1两个变量指向内存中同一份数据集。此时对df2做的任何列修改、值修改,本质都是操作同一份底层数据,df1自然会同步变动。

解决方法

对df1做独立拷贝后再赋值给df2即可,常规数据场景下直接调用pandas内置的copy()方法生成深拷贝,就能完全隔离两个DataFrame的修改影响,参考代码:

import pandas as pd
import numpy as np

# 原始构造逻辑
df1 = pd.DataFrame([[1,2],['a',1]])
df1 = df1.replace(1, np.nan)

# 生成独立副本,不直接引用原对象
df2 = df1.copy()
df2[1] = df2[1].replace(np.nan, 0)

执行上述代码后,df1会保留替换NaN后的原始状态,仅df2的第1列会完成NaN替换为0的操作,不会出现原数据被联动修改的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:57:21