Как скопировать DataFrame с помощью df.copy() в Pandas

Функция Pandas copy() используется для создания копии объекта Pandas. Переменные также используются для создания копии объекта. Тем не менее, переменные — это просто указатели на объект, и любое изменение новых данных также изменит предыдущие данные.

Что такое функция DataFrame.copy() в Pandas?

Чтобы скопировать DataFrame в Pandas, используйте метод copy(). Метод DataFrame.copy() создает копию предоставленных индексов и данных объекта. Метод copy() принимает один параметр, называемый deep, и возвращает серию или фрейм данных, соответствующий вызывающему объекту.

Синтаксис

Параметры

deep: bool, по умолчанию True.

  • Когда deep=True(по умолчанию), новый объект будет создан с копией данных и индексов вызывающего объекта. Изменения данных или индексов копии не будут отражены в исходном объекте.
  • Когда deep=False, новый объект будет сгенерирован без копирования данных или индекса вызывающего объекта(копируются только ссылки на данные и индекс). Любые изменения данных оригинала будут отражены в мелкой копии(и наоборот).

Возвращаемое значение

Метод copy() возвращает серию или фрейм данных.

Как скопировать DataFrame с помощью df.copy() в Pandas

Пример

Напишите следующий код в файле app.py.

Вывод:

В этом примере мы определили DataFrame, а затем использовали метод df.copy() для копирования DataFrame и печати исходного и скопированного DataFrame. Мы не передавали никаких параметров методу copy().

Поверхностная и глубокая копия Pandas DataFrame

  1. Чтобы создать глубокую копию Pandas DataFrame, используйте метод df.copy() или df.copy(deep=True).
  2. Чтобы создать поверхностную копию Pandas DataFrame, используйте метод df.copy(deep=False).

Функция Pandas DataFrame copy() делает копию индексов и данных этого объекта. Когда deep=True(по умолчанию), новый объект будет создан с копией данных и индексов вызывающего объекта. Изменения данных или индексов копии не будут отражены в исходном объекте.

Когда deep=False, новый объект будет создан без копирования данных или индекса вызывающего объекта(копируются только ссылки на данные и индекс). Любые изменения данных оригинала будут отражены в мелкой копии.

См. следующий код.

Вывод:

Из вывода вы можете получить следующие наблюдения.

  1. Неглубокая копия разделяет данные и индекс с оригиналом.
  2. Глубокая копия не использует данные и индекс совместно с исходным объектом. Объект глубокой копии имеет свою копию данных и индекс.
  3. При копировании объекта, содержащего объекты Python, глубокая копия копирует данные, но не рекурсивно. Обновление вложенного объекта данных будет отражено в глубокой копии.
  4. Когда deep=True, данные копируются, но фактические объекты Python не будут рекурсивно копироваться, а только ссылка на этот объект.
  5. В то время как объекты индекса копируются, когда deep=True, базовый массив numpy не копируется из соображений производительности. Поскольку индекс неизменяем, базовые данные можно безопасно использовать совместно, и копия не требуется.
Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python