copy.deepcopy не препятствует копированию по ссылке - PullRequest
2 голосов
/ 08 марта 2019

Я играю с copy.deepcopy из пакета копирования.Мое намерение состояло в том, чтобы иметь возможность «действительно» создать копию переменной в python, как это можно сделать, например, в R или VBA.

Теперь взгляните на мой код:

Это первая часть, где я загружаю библиотеки и загружаю копию набора данных iris из Интернета.

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.columns.values[0] = 'sepal_length'

Когда я проверяю имя первого столбца исходного набора данных, оно также изменилось.Такое поведение должно ожидаться, если бы я сделал «копию» со знаком «=» в Python, но не с помощью использования копирования пакета и его функции deepcopy.

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

Я, конечно,здесь чего-то не хватает в базовом понимании Python, я просто не знаю точно, что это.

С уважением,

Густаво

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...