我正在使用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理解中肯定会缺少一些东西,我只是不知道它到底是什么。
最诚挚的问候,
古斯塔沃