Как создать копию Series в Pandas?
Этот вопрос проверяет, как в Pandas можно создать копию объекта Series и в чем разница между поверхностным (shallow) и глубоким (deep) копированием.
Короткий ответ
В Pandas можно создать копию Series двумя способами:
- Поверхностное копирование (shallow copy) – копирует только ссылки на данные, поэтому изменения в копии отразятся на оригинале. Используется ser.copy(deep=False).
- Глубокое копирование (deep copy) – создает полную независимую копию, изменения не влияют на оригинал. Используется ser.copy(deep=True).
По умолчанию copy() создает глубокую копию (deep=True).
Длинный ответ
В Pandas метод copy() позволяет создать копию Series, но важно понимать разницу между двумя типами копирования:
1. Поверхностное копирование (shallow copy)
- Копируется только ссылка на данные, сами данные остаются общими для оригинала и копии.
- Изменения в копии затронут оригинальные данные.
- Используется, когда нужно работать с метаданными Series, но не дублировать сами данные.
- Пример:
import pandas as pd
ser = pd.Series([1, 2, 3])
shallow_copy = ser.copy(deep=False)
shallow_copy[0] = 100
print(ser) # Оригинальный Series тоже изменится
2. Глубокое копирование (deep copy)
- Создается полностью независимая копия Series.
- Изменения в копии не затронут оригинальные данные.
- Используется, когда нужна полная изоляция данных.
- Пример:
deep_copy = ser.copy(deep=True)
deep_copy[0] = 200
print(ser) # Оригинальный Series останется неизменным
Используйте deep=False, если хотите экономить память и не боитесь изменения данных в оригинале. Если же нужно полностью независимое копирование, используйте deep=True.