РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
684 of 687 menu

Опция mode.copy_on_write

Опция mode.copy_on_write управляет поведением механизма Copy-on-Write в Pandas. Данная опция влияет на то, как данные копируются при изменении объектов DataFrame и Series. Когда опция включена, Pandas создает копии данных только в момент их фактического изменения, что позволяет экономить память и повышает производительность. По умолчанию опция отключена для обратной совместимости, но в будущих версиях планируется сделать её включенной по умолчанию.

Синтаксис

Управление опцией осуществляется через функцию pd.set_option для включения и pd.get_option для проверки состояния:

import pandas as pd pd.set_option('mode.copy_on_write', True) pd.get_option('mode.copy_on_write')

Пример

Рассмотрим поведение опции на примере изменения данных в копии таблицы:

import pandas as pd pd.set_option('mode.copy_on_write', True) df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) df_copy = df df_copy.loc[0, 'a'] = 999 print(df)

Результат выполнения кода:

a b 0 1 10 1 2 20 2 3 30 3 4 40 4 5 50

При включенной опции изменения в переменной df_copy не затрагивают исходную таблицу df, так как копирование происходит только в момент записи.

Пример

Сравним поведение при отключенной опции. В этом случае изменения в копии повлияют на исходную таблицу:

import pandas as pd pd.set_option('mode.copy_on_write', False) df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) df_copy = df df_copy.loc[0, 'a'] = 999 print(df)

Результат выполнения кода:

a b 0 999 10 1 2 20 2 3 30 3 4 40 4 5 50

При отключенной опции изменения в копии отражаются на исходной таблице, что может привести к неожиданным побочным эффектам.

Пример

Покажем, как проверить текущее состояние опции и временно изменить её с помощью контекстного менеджера:

import pandas as pd print(pd.get_option('mode.copy_on_write')) with pd.option_context('mode.copy_on_write', True): print(pd.get_option('mode.copy_on_write')) print(pd.get_option('mode.copy_on_write'))

Результат выполнения кода:

False True False

Смотрите также

  • функция set_option,
    которая устанавливает значения опций Pandas
  • функция get_option,
    которая возвращает текущее значение опции
  • функция option_context,
    которая временно изменяет опции в контексте
  • опция mode.chained_assignment,
    которая управляет предупреждениями при цепочках присваивания
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить