Я играю с 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, я просто не знаю точно, что это.
С уважением,
Густаво