copy.deepcopy不会阻止引用复制

时间:2019-03-07 22:58:13

标签: python data-structures package structure

我正在使用copy包中的copy.deepcopy。我的意图是能够“真正”在python中创建变量的副本,例如可以在R或VBA中完成。

现在看看我的代码:

这是我加载库并从互联网下载虹膜数据集副本的第一部分。

import copy
import statsmodels.api as sm
dataset_iris = sm.datasets.get_rdataset(dataname='iris',
                                    package='datasets')

在这里,我试图按对象dataset_iris的值创建一个副本

iris = copy.deepcopy(dataset_iris)
iris = iris['data']

这时,如果我在原始数据集中检查第一列名称的值,则会得到两个大写的名称,并用点分隔:

print(dataset_iris['data'].columns.values[0])
#Sepal.Length

比我更改复制的数据集的(iris)列的名字

iris.columns.values[0] = 'sepal_length'

当我检查原始数据集第一列的名称时,它也已更改。如果我在Python中使用“ =”符号完成了“复制”操作,但未通过使用包复制及其功能deepcopy进行复制,则可以预期会出现这种情况。

print(dataset_iris['data'].columns.values[0])
#sepal_length

我在基本的Python理解中肯定会缺少一些东西,我只是不知道它到底是什么。

最诚挚的问候,

古斯塔沃

0 个答案:

没有答案