Faites des pandas 3 fois plus vite avec PyPolars

Nœud source: 1854103

Faites des pandas 3 fois plus vite avec PyPolars

Mots clés: Pandas, Performance, Python

Apprenez à accélérer votre flux de travail Pandas à l'aide de la bibliothèque PyPolars.


By Satyam Kumar, passionné d'apprentissage automatique et programmeur



Photo par Tim Gouw on Unsplash

 

Pandas est l'un des packages Python les plus importants parmi les data scientists pour jouer avec les données. La bibliothèque Pandas est principalement utilisée pour les explorations et les visualisations de données, car elle contient des tonnes de fonctions intégrées. Les pandas ne parviennent pas à gérer les ensembles de données de grande taille car ils ne s'adaptent pas ou ne distribuent pas leur processus sur tous les cœurs du processeur.

Pour accélérer les calculs, on peut utiliser tous les cœurs du processeur et accélérer le flux de travail. Il existe diverses bibliothèques open source, notamment Dask, Vaex, Modin, Pandarallel, PyPolars, etc., qui parallélisent les calculs sur plusieurs cœurs du processeur. Dans cet article, nous discuterons de l'implémentation et de l'utilisation de la bibliothèque PyPolars et comparerons ses performances avec la bibliothèque Pandas.

Qu'est-ce que PyPolars ?

 
PyPolars est une bibliothèque de cadres de données Python open source similaire à Pandas. PyPolars utilise tous les cœurs disponibles du processeur et effectue donc les calculs plus rapidement que Pandas. PyPolars possède une API similaire à celle de Pandas. Il est écrit en rouille avec des wrappers Python.


Idéalement, PyPolars est utilisé lorsque les données sont trop volumineuses pour les Pandas et trop petites pour Spark


Comment fonctionne PyPolars ?

 
La bibliothèque PyPolars a deux API, l'une est l'API Eager et l'autre est l'API Lazy. L'API Eager est très similaire à celle de Pandas, et les résultats sont produits juste après la fin de l'exécution, de la même manière que Pandas. L'API Lazy est très similaire à Spark, où une carte ou un plan est formé lors de l'exécution d'une requête. Ensuite, l'exécution est exécutée en parallèle sur tous les cœurs du processeur.



(Image de l'auteur), API PyPolars

 

PyPolars est essentiellement une liaison python à la bibliothèque Polars. La meilleure partie de la bibliothèque PyPolars est sa similitude d'API avec Pandas, ce qui la rend plus facile pour les développeurs.

Installation:

 
PyPolars peut être installé à partir de PyPl à l'aide de la commande suivante :

pip install py-polars


et importer la bibliothèque en utilisant

import pypolars as pl


Contraintes de temps de référence :


Pour les démonstrations, j'ai utilisé un ensemble de données de grande taille (~ 6.4 Go) comportant 25 millions d'instances.




(Image par l'auteur), nombre de temps de référence pour les opérations de base de Pandas et Py-Polars

 

Pour les nombres de temps de référence ci-dessus pour certaines opérations de base utilisant la bibliothèque Pandas et PyPolars, nous pouvons observer que PyPolars est presque 2x à 3x plus rapide que Pandas.

On sait maintenant que PyPolars possède une API très similaire à celle de Pandas, mais malgré tout, elle ne couvre pas toutes les fonctions de Pandas. Par exemple, nous n'avons pas .describe() fonction dans PyPolars, à la place, nous pouvons utiliser df_pypolars.to_pandas().describe()

Usage:

 

(Code par auteur)

Conclusion:

 
Dans cet article, nous avons couvert une petite introduction à la bibliothèque PyPolars, y compris son implémentation, son utilisation et la comparaison de ses nombres de temps de référence avec Pandas pour certaines opérations de base. Notez que PyPolars fonctionne de manière très similaire à celle de Pandas, et PyPolars est une bibliothèque économe en mémoire puisque la mémoire qu'elle soutient est immuable.

On peut passer par le Documentation pour avoir une compréhension détaillée de la bibliothèque. Il existe diverses autres bibliothèques open source qui peuvent paralléliser les opérations Pandas et accélérer le processus. Lis le article ci-dessous pour connaître 4 de ces bibliothèques :

4 bibliothèques pouvant paralléliser l'écosystème Pandas existant
Distribuer la charge de travail Python par traitement parallèle à l'aide de ces frameworks

 
Références:

[1] Documentation Polars et référentiel GitHub : https://github.com/ritchie46/polars

 
Merci pour la lecture

 
Bio: Satyam Kumar est un passionné d'apprentissage automatique et un programmeur. Satyam écrit sur la science des données, et est l'un des meilleurs rédacteurs en IA. Il est à la recherche d'une carrière stimulante au sein d'une organisation qui lui permet de mettre à profit ses compétences et ses capacités techniques.

ORIGINALE. Republié avec permission.

Connexe:

Source : https://www.kdnuggets.com/2021/05/pandas-faster-pypolars.html

Horodatage:

Plus de KDnuggetsGenericName