Pandarallel — это инструмент Python, с помощью которого можно распараллелить различные операции с фреймами данных. Это синоним Pandas при параллельной обработке. Это простой способ ускорить вычисления, когда мы используем pandas. Первый выпуск этой библиотеки вышел в марте 2019 года.

Когда мы используем функции Pandas DataFrames, такие как «apply()» или любые другие методы, обработка происходит на одном ядре ЦП, даже если у нас доступно несколько ядер. Функция применения по своей природе медленная, поскольку обрабатывает записи построчно. Он не использует какой-либо метод векторизации.

Pandarallel устраняет это ограничение путем маршрутизации и разделения операций на нескольких доступных ядрах ЦП. Он использует стандартную концепцию многопроцессорности Python. Канал используется для передачи данных между основным процессом и рабочими процессами.

Pandallel в AWS:

Pandarallel также совместим с Lambda и EC2 в AWS. Любой может использовать эту библиотеку без особых хлопот в облачной среде. Вы можете включить эту библиотеку в лямбда-слой. Кроме того, вы можете включить эту зависимость библиотеки через пакет развертывания вместе с вашим кодом.

pandarallel также предлагает хорошие индикаторы выполнения при выполнении DataFrames, где вам не нужно явно использовать библиотеку tqdm в python для отображения индикаторов выполнения. Это помогает визуализировать ход выполнения ЦП.

Ограничения:

Pandarallel требуется больше памяти, примерно вдвое больше памяти, чем обычно использует стандартная операция pandas. Pandarallel НЕ следует использовать, если ваши данные не помещаются в память с пандами.

В таком случае мы можем использовать другие фреймворки, такие как Pyspa3rk, Vaex, Dask, Ray и т. д. Modin с бэкендом Dask или Ray может быть хорошим вариантом.

Установка:

Библиотеку можно установить с помощью диспетчера пакетов Python, который является предпочтительной программой установки (PIP).

pip install pandarallel

Пример кода:

Здесь я создал функцию «make_split()», которая разбивает большую строку и преобразует ее в токены/слова, затем подсчитывается количество токенов в строке.

Это соответствующая функция pandas вместе с функцией Pandarrel. Вы можете использовать существующую функцию pandas с префиксом parallel в pandarrel.

Вывод:

Pandarrel не всегда может быть быстрее во всех сценариях. Если вы обрабатываете несколько килобайт или мегабайт данных, вы можете просто использовать pandas для более быстрой обработки. Если вы хотите выполнять тяжелую работу с большими текстами в DataFrame, тогда pandarrel, безусловно, поможет для ускорения ваших операций.

Рекомендации

https://pypi.org/project/pandarallel/