Введение
В этом практическом занятии представлен пошаговый гайд по пониманию и реализации концепции Copy-On-Write (CoW) в Python Pandas. CoW - это стратегия оптимизации, которая повышает производительность и эффективность использования памяти, задерживая копирование до последнего возможного момента. Она также помогает избежать случайных модификаций нескольких объектов одновременно.
Советы по использованию ВМ
После запуска виртуальной машины щелкните в верхнем левом углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.
Иногда может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Включение Copy-On-Write
Сначала давайте включим CoW в pandas. Это можно сделать с помощью параметра конфигурации copy_on_write в pandas. Вот два способа, с помощью которых можно включить CoW глобально.
## Импортируем библиотеки pandas и numpy
import pandas as pd
## Включаем CoW с помощью set_option
pd.set_option("mode.copy_on_write", True)
## Или с помощью прямого назначения
pd.options.mode.copy_on_write = True
Понимание Copy-On-Write с DataFrame
Теперь давайте создадим DataFrame и посмотрим, как CoW влияет на модификацию данных.
## Создаем DataFrame
df = pd.DataFrame({"foo": [1, 2, 3], "bar": [4, 5, 6]})
## Создаем подмножество DataFrame
subset = df["foo"]
## Изменяем подмножество
subset.iloc[0] = 100
## Выводим исходный DataFrame
print(df)
Реализация Copy-On-Write с DataFrame
Теперь давайте посмотрим, как реализовать CoW при изменении DataFrame.
## Включаем CoW
pd.options.mode.copy_on_write = True
## Создаем подмножество DataFrame
subset = df["foo"]
## Изменяем подмножество
subset.iloc[0] = 100
## Выводим исходный DataFrame
print(df)
Понимание последовательного присваивания с Copy-On-Write
Теперь давайте разберем, как работает последовательное присваивание с CoW.
## Создаем DataFrame
df = pd.DataFrame({"foo": [1, 2, 3], "bar": [4, 5, 6]})
## Применяем последовательное присваивание, которое нарушает принципы CoW
df["foo"][df["bar"] > 5] = 100
## Выводим DataFrame
print(df)
Реализация последовательного присваивания с Copy-On-Write
Наконец, давайте посмотрим, как реализовать последовательное присваивание с CoW с использованием метода loc.
## Создаем DataFrame
df = pd.DataFrame({"foo": [1, 2, 3], "bar": [4, 5, 6]})
## Применяем последовательное присваивание с CoW с использованием 'loc'
df.loc[df["bar"] > 5, "foo"] = 100
## Выводим DataFrame
print(df)
Резюме
В этом практическом занятии вы узнали о концепции Copy-On-Write (CoW) и о том, как реализовать ее в Python Pandas. Также вы поняли, как CoW влияет на модификацию данных и как она работает с последовательным присваиванием. Используя CoW, вы можете оптимизировать свой код для лучшей производительности и использования памяти.