Зробіть Pandas в 3 рази швидшими за допомогою PyPolars

Вихідний вузол: 1854103

Зробіть Pandas в 3 рази швидшими за допомогою PyPolars

Ключові слова: Панди, продуктивність, Python

Дізнайтеся, як прискорити робочий процес Pandas за допомогою бібліотеки PyPolars.


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



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

 

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

Щоб прискорити обчислення, можна використовувати всі ядра ЦП і прискорити робочий процес. Існують різні бібліотеки з відкритим вихідним кодом, включаючи Dask, Vaex, Modin, Pandarallel, PyPolars тощо, які паралелізують обчислення в кількох ядрах ЦП. У цій статті ми обговоримо реалізацію та використання бібліотеки PyPolars і порівняємо її продуктивність з бібліотекою Pandas.

Що таке PyPolars?

 
PyPolars — це бібліотека фреймів даних Python з відкритим вихідним кодом, подібна до Pandas. PyPolars використовує всі доступні ядра ЦП і, отже, виконує обчислення швидше, ніж Pandas. PyPolars має API, подібний до Pandas. Він написаний на русті з обгортками Python.


В ідеалі PyPolars використовується, коли дані занадто великі для Pandas і занадто малі для Spark


Як працює PyPolars?

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



(Зображення автора), API PyPolars

 

PyPolars в основному є прив'язкою python до бібліотеки Polars. Найкращою частиною бібліотеки PyPolars є її схожість API з Pandas, що полегшує роботу розробникам.

Установка:

 
PyPolars можна встановити з PyPl за допомогою такої команди:

pip install py-polars


та імпортуйте бібліотеку за допомогою

import pypolars as pl


Контрольні часові обмеження:


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




(Зображення автора), контрольний час для основних операцій Pandas і Py-Polars

 

Для наведених вище контрольних показників часу для деяких основних операцій із використанням Pandas і бібліотеки PyPolars ми можемо помітити, що PyPolars майже в 2-3 рази швидше, ніж Pandas.

Тепер ми знаємо, що PyPolars має API, дуже схожий на API Pandas, але все ж він не охоплює всі функції Pandas. У нас, наприклад, немає .describe() функцію в PyPolars, замість цього ми можемо використовувати df_pypolars.to_pandas().describe()

Використання:

 

(Код автора)

Висновок:

 
У цій статті ми розглянули невеликий вступ до бібліотеки PyPolars, включаючи її реалізацію, використання та порівняння її контрольних показників часу з Pandas для деяких основних операцій. Зауважте, що PyPolars працює дуже подібно до Pandas, а PyPolars — це бібліотека, яка економить пам’ять, оскільки підтримується нею пам’ять незмінна.

Можна пройти через документація щоб отримати детальне уявлення про бібліотеку. Існують інші бібліотеки з відкритим кодом, які можуть паралельно виконувати операції Pandas і прискорювати процес. Читати нижченаведена стаття знати 4 такі бібліотеки:

4 бібліотеки, які можуть паралельно використовувати існуючу екосистему Pandas
Розподіліть робоче навантаження Python шляхом паралельної обробки за допомогою цих фреймворків

 
Список використаної літератури:

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

 
Дякую, що читаєте

 
Біо: Сатьям Кумар є ентузіастом і програмістом машинного навчання. Сатьям пише про науку про дані, і є найкращим автором у сфері AI. Він шукає складну кар’єру в організації, яка дає можливість використовувати його технічні навички та здібності.

Оригінал. Повідомлено з дозволу.

За темою:

Джерело: https://www.kdnuggets.com/2021/05/pandas-faster-pypolars.html

Часова мітка:

Більше від KDnuggets