Панды 2.0 уже здесь

Feb 27 2023
Python Pandas 2.0 только что вышел, и вот что они добавили и улучшили (это многое изменит). Инженерия, Pandas раньше вызывала много ненависти, потому что она не дает оптимальной производительности при работе с большим набором данных.

Python Pandas 2.0 только что был выпущен, и вот что они добавили и улучшили (это многое изменит)

Фото Паскаля Мюллера на Unsplash

Если вы работаете в индустрии данных (инженерия данных/наука/мл), возможно, вы уже знаете, что такое Pandas.

Говоря специально о Data Engineering, Pandas раньше вызывал много ненависти, потому что он не дает оптимальной производительности при работе с большим набором данных.

Pandas 2.0 — это шаг в этом направлении, вот 3 основные функции.

Более быстрые и эффективные операции с памятью

Они добавили поддержку pyarrow в бэкэнд.

Серверная часть pyarrow — это новая функция в pandas 2.0, которая позволяет пользователям использовать Apache Arrow в качестве альтернативного формата хранения данных для pandas DataFrames и Series.

Это означает, что когда вы читаете или записываете файлы Parquet в pandas 2.0, он по умолчанию будет использовать pyarrow для обработки данных, что приводит к более быстрым и эффективным операциям с памятью.

Что такое пирроу?
Pyarrow — это библиотека, предоставляющая столбчатый формат памяти, который представляет собой способ организации данных, облегчающий чтение и параллельную обработку.

Таким образом, использование бэкэнда pyarrow в pandas 2.0 может привести к более быстрым и эффективным операциям с данными, особенно при работе с большими наборами данных.

PyArrow поддерживается

Оптимизация копирования при записи

Подобно Spark и тому, как он выполняет код

Это метод оптимизации памяти, который используется в пандах для повышения производительности и сокращения использования памяти при работе с большими наборами данных.

Идея состоит в том, что когда вы делаете копию объекта pandas, такого как DataFrame или Series, вместо немедленного создания новой копии данных, pandas создаст ссылку на исходные данные и отложит создание новой копии до тех пор, пока вы не измените данные в некотором роде.

Это означает, что если у вас есть несколько копий одних и тех же данных, все они могут ссылаться на одну и ту же память, пока вы не внесете изменения в одну из них. Это может значительно сократить использование памяти и повысить производительность, поскольку вам не нужно делать ненужные копии данных.

В целом, копирование при записи — это мощный метод оптимизации, который может помочь вам работать с большими наборами данных более эффективно и с меньшим объемом памяти.

Копирование при записи

Индекс теперь может содержать числовые типы NumPy.

Краткое резюме: лучшие индексы, более быстрый доступ и вычисления

Подробности:
Pandas 2.0 позволяет Index хранить любой числовой тип NumPy, включая int8, int16, int32, int64, uint8, uint16, uint32, uint64, float32 и float64.

Ранее поддерживались только типы int64, uint64 и float64.

В результате операции, которые ранее создавали 64-разрядные индексы, теперь могут создавать индексы с более низкими разрядами, например 32-разрядные индексы.

Индекс NumPy

TL;DR
1. В backed добавлена ​​стрелка, что делает операции более быстрыми и эффективными с точки зрения использования памяти.
2. Оптимизация копирования при записи: аналогично Spark и тому, как он выполняет код.
3. Индекс теперь может содержать числовые типы NumPy, что ускоряет операции.

Я также собираюсь добавить учебные пособия по этим функциям в свой курс Python для Data Engineering.

Если вы хотите узнать все о Python для проектирования данных, проверьте

https://learn.datawithdarshil.com/courses/Python-for-Data-Engineering