Руководство по реализации Copy-On-Write в Pandas

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии представлен пошаговый гайд по пониманию и реализации концепции 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, вы можете оптимизировать свой код для лучшей производительности и использования памяти.