-
直接赋值:其实就是对象的引用(别名)。
-
浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。
-
深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。
为对dataframe进行对比实验,我们首先构造一个简单的dataframe:
import pandas as pd
df = pd.DataFrame({'A':[1,1,1],'B':[2,2,2],'C':[3,3,3]})
df:
第一种: 直接赋值
# 1. 直接赋值
df1 = df
# 修改df1中A列数据
df1['A']=4
df:
df1:
改变df1,df也会同时发生变化。
第二种: 浅拷贝copy
# 2. 浅拷贝
df2 = df.copy()
# 修改df2中A列数据
df2['A']=4
df:
df2:
第三种: 深拷贝deepcopy
# 3. 深拷贝
import copy
df3 = copy.deepcopy(df)
# 修改df2中A列数据
df3['A']=4
df:
df3: