Метод copy
Метод copy применяется к Series
и возвращает копию серии. Первым параметром можно
передать булево значение deep, которое
указывает, будет ли копия глубокой или поверхностной.
По умолчанию deep установлен в True,
что создает полную копию данных и индекса.
Синтаксис
ser.copy([deep])
Пример
Давайте создадим глубокую копию серии и изменим исходную серию, чтобы убедиться, что копия не изменилась:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
copied_ser = ser.copy()
ser[0] = 100
print(copied_ser)
Результат выполнения кода:
0 1
1 2
2 3
3 4
4 5
dtype: int64
Как видно, копия осталась без изменений, даже после модификации исходной серии.
Пример
Создадим поверхностную копию с параметром deep равным False.
При изменении исходной серии, данные в поверхностной копии также изменятся,
поскольку они ссылаются на те же объекты:
import pandas as pd
ser = pd.Series(['a', 'b', 'c', 'd', 'e'])
copied_ser = ser.copy(deep=False)
ser[0] = 'z'
print(copied_ser)
Результат выполнения кода:
0 z
1 b
2 c
3 d
4 e
dtype: object
Пример
Создадим глубокую копию серии с индексом и изменим индекс исходной серии, чтобы убедиться, что копия сохранила свой индекс:
import pandas as pd
ser = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
copied_ser = ser.copy()
ser.index = ['x', 'y', 'z']
print(copied_ser)
Результат выполнения кода:
a 10
b 20
c 30
dtype: int64
Индекс в копии остался неизменным, так как deep=True копирует и индекс тоже.