Сделайте Pandas в 3 раза быстрее с PyPolar

Исходный узел: 1854103

Сделайте Pandas в 3 раза быстрее с PyPolar

Узнайте, как ускорить рабочий процесс Pandas с помощью библиотеки PyPolars.


By Сатьям Кумар, Энтузиаст машинного обучения и программист



Фото Тим Гоу on Unsplash

 

Pandas - один из самых важных пакетов Python среди специалистов по обработке данных, позволяющий экспериментировать с данными. Библиотека Pandas используется в основном для исследования и визуализации данных, поскольку она имеет множество встроенных функций. Pandas не может обрабатывать наборы данных большого размера, поскольку он не масштабирует и не распределяет свой процесс по всем ядрам ЦП.

Чтобы ускорить вычисления, можно задействовать все ядра процессора и ускорить рабочий процесс. Существуют различные библиотеки с открытым исходным кодом, включая Dask, Vaex, Modin, Pandarallel, PyPolars и т. Д., Которые распараллеливают вычисления между несколькими ядрами ЦП. В этой статье мы обсудим реализацию и использование библиотеки PyPolars и сравним ее производительность с библиотекой Pandas.

Что такое PyPolar?

 
PyPolar - это библиотека фреймов данных Python с открытым исходным кодом, похожая на Pandas. PyPolar использует все доступные ядра ЦП и, следовательно, выполняет вычисления быстрее, чем Pandas. PyPolar имеет API, похожий на API Pandas. Написано ржавчиной с оберткой Python.


В идеале PyPolar используется, когда данные слишком велики для Pandas и слишком малы для Spark.


Как работает PyPolars?

 
Библиотека PyPolars имеет два API: один - Eager API, а другой - Lazy API. Eager API очень похож на Pandas, и результаты выдаются сразу после завершения выполнения, как и Pandas. Ленивый API очень похож на Spark, где карта или план формируется при выполнении запроса. Затем выполнение выполняется параллельно на всех ядрах ЦП.



(Изображение автора), API PyPolars

 

PyPolars - это в основном привязка python к библиотеке Polars. Лучшая часть библиотеки PyPolars - это ее API-интерфейс, похожий на Pandas, что упрощает работу разработчиков.

Установка:

 
PyPolar можно установить из PyPl с помощью следующей команды:

pip install py-polars


и импортируйте библиотеку, используя

import pypolars as pl


Контрольные временные ограничения:


Для демонстрации я использовал набор данных большого размера (~ 6.4 ГБ), содержащий 25 миллионов экземпляров.




(Изображение автора), Контрольное число времени для основных операций Pandas и Py-Polars

 

Для приведенных выше показателей времени для некоторых базовых операций с использованием библиотеки Pandas и PyPolar мы можем заметить, что PyPolar почти в 2–3 раза быстрее, чем Pandas.

Теперь мы знаем, что PyPolar имеет API, очень похожий на API Pandas, но, тем не менее, он не охватывает все функции Pandas. Например, у нас нет .describe() в PyPolar вместо этого мы можем использовать df_pypolars.to_pandas().describe()

Применение:

 

(Код автора)

Вывод:

 
В этой статье мы рассмотрели небольшое введение в библиотеку PyPolars, включая ее реализацию, использование и сравнение ее контрольных значений времени с Pandas для некоторых основных операций. Обратите внимание, что PyPolar работает очень похоже на Pandas, а PyPolar - это библиотека с эффективным использованием памяти, поскольку поддерживаемая ею память неизменна.

Можно пройти через документации чтобы получить подробное представление о библиотеке. Существуют различные другие библиотеки с открытым исходным кодом, которые могут распараллеливать операции Pandas и ускорять процесс. Прочтите нижеупомянутая статья знать 4 такие библиотеки:

4 библиотеки, которые могут распараллелить существующую экосистему Pandas
Распределите рабочую нагрузку Python путем параллельной обработки с помощью этих фреймворков.

 
Ссылки:

[1] Документация Polars и репозиторий GitHub: https://github.com/ritchie46/polars

 
Спасибо за чтение

 
Bio: Сатьям Кумар Энтузиаст машинного обучения и программист. Сатьям пишет о Data Science и является ведущим писателем в области искусственного интеллекта. Он ищет интересную карьеру в организации, которая дает возможность извлечь выгоду из его технических навыков и способностей.

Оригинал, Перемещено с разрешения.

Связанный:

Источник: https://www.kdnuggets.com/2021/05/pandas-faster-pypolars.html

Отметка времени:

Больше от КДнаггетс