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, где карта или план формируется при выполнении запроса. Затем выполнение выполняется параллельно на всех ядрах ЦП.
PyPolars - это в основном привязка python к библиотеке Polars. Лучшая часть библиотеки PyPolars - это ее API-интерфейс, похожий на Pandas, что упрощает работу разработчиков.
Установка:
PyPolar можно установить из PyPl с помощью следующей команды:
pip install py-polars
и импортируйте библиотеку, используя
import pypolars as pl
Контрольные временные ограничения:
Для демонстрации я использовал набор данных большого размера (~ 6,4 ГБ), содержащий 25 миллионов экземпляров.
Для приведенных выше показателей времени для некоторых базовых операций с использованием библиотеки Pandas и PyPolar мы можем заметить, что PyPolar почти в 2–3 раза быстрее, чем Pandas.
Теперь мы знаем, что PyPolar имеет API, очень похожий на API Pandas, но, тем не менее, он не охватывает все функции Pandas. Например, у нас нет функции .describe()
в PyPolars, вместо этого мы можем использовать df_pypolars.to_pandas().describe()
Использование:
Заключение:
В этой статье мы рассмотрели небольшое введение в библиотеку PyPolars, включая ее реализацию, использование и сравнение ее контрольных значений времени с Pandas для некоторых основных операций. Обратите внимание, что PyPolar работает очень похоже на Pandas, а PyPolar - это библиотека с эффективным использованием памяти, поскольку поддерживаемая ею память неизменна.
Чтобы получить более подробное представление о библиотеке, можно просмотреть документацию. Существуют различные другие библиотеки с открытым исходным кодом, которые могут распараллеливать операции Pandas и ускорять процесс. Прочтите указанную ниже статью, чтобы узнать о 4 таких библиотеках:
Использованная литература:
[1] Документация Polars и репозиторий GitHub: https://github.com/ritchie46/polars
Спасибо за чтение