Как устроен Copy-on-Write
Вопрос
Как работает Copy-on-Write в pandas 3.0 и почему он не замедляет код?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Ответ
Выборка или метод возвращает новый объект, который пока делит данные с исходным (ленивая копия). Pandas отслеживает ссылки, и реальное копирование происходит только при первой записи в один из объектов, у которого есть общие данные. Поэтому цепочки методов без записи не копируют лишнего, а изменение никогда не протекает в другой объект. Следствие: цепочное присваивание не работает, менять нужно через loc одним шагом.
Разбор
Выборка или метод возвращает новый объект, который пока делит данные с исходным (ленивая копия). Pandas отслеживает ссылки, и реальное копирование происходит только при первой записи в один из объектов, у которого есть общие данные. Поэтому цепочки методов без записи не копируют лишнего, а изменение никогда не протекает в другой объект. Следствие: цепочное присваивание не работает, менять нужно через loc одним шагом.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.