Lorsque vous effectuez des tâches d’analyse de données, il y a de fortes chances que vous ayez rencontré Pandas. Il s’agit de la bibliothèque la plus répandue dans le domaine de l’analyse de données depuis longtemps. Polars, quant à lui, est une bibliothèque relativement récente qui se targue de performances élevées et d’une grande efficacité en termes de mémoire. Mais laquelle est la meilleure ?


Ici, vous verrez une comparaison des performances entre Pandas et Polars pour une série de tâches courantes de manipulation de données.

Mesurer la performance : Métriques et ensemble de données de référence

Cette comparaison prendra en compte la capacité des bibliothèques Pandas et Polars à manipuler l’ensemble de données Black Friday Sale de Kaggle. Ce jeu de données contient 550 068 lignes de données. Il comprend des informations sur les caractéristiques démographiques des clients, l’historique des achats et les détails des produits.

Pour garantir des mesures de performance équitables, la comparaison utilisera le temps d’exécution comme mesure de performance standard pour chaque tâche. La plateforme d’exécution du code pour chaque tâche de comparaison sera Google Colab.

Lire  Les 6 meilleures applications bibliques chrétiennes pour Android et iPhone

Le code source complet qui compare les bibliothèques Pandas et Polars est disponible dans un dépôt GitHub.

Lire les données d’un fichier CSV

Cette tâche compare le temps nécessaire à chaque bibliothèque pour lire les données de l’ensemble de données Black Friday Sale. Le jeu de données est au format CSV. Pandas et Polars offrent des fonctionnalités similaires pour cette tâche.

Diagramme à barres montrant la comparaison entre le temps nécessaire à Pandas et à Polars pour lire un fichier CSV.

Les Pandas mettent deux fois plus de temps que les Polars à lire les données de l’ensemble de données Black Friday Sale.

Sélection des colonnes

Cette tâche mesure le temps nécessaire à chaque bibliothèque pour sélectionner les colonnes de l’ensemble de données. Il s’agit de sélectionner les ID_utilisateur et Achat colonnes.

Un diagramme à barres montrant la comparaison entre le temps d'exécution de Pandas et celui de Polars pour la sélection des colonnes.

Polars prend beaucoup moins de temps que Pandas pour sélectionner des colonnes dans le jeu de données.

Filtrage des lignes

Cette tâche compare les performances de chaque bibliothèque dans le filtrage des lignes où le paramètre Sexe est F de l’ensemble de données.

Un diagramme à barres montrant la comparaison entre le temps nécessaire aux Pandas et aux Polars pour filtrer les lignes.

Les Polars prennent très peu de temps par rapport aux Pandas pour filtrer les lignes.

Regroupement et agrégation des données

Cette tâche consiste à regrouper des données en fonction d’une ou plusieurs colonnes. Ensuite, il faut effectuer des fonctions d’agrégation sur les groupes. Elle mesure le temps qu’il faut à chaque bibliothèque pour regrouper les données en fonction de la ou des colonnes. Genre et calculez le montant moyen des achats pour chaque groupe.

Un diagramme à barres montrant la comparaison entre les Polars et les Pandas dans le regroupement et l'agrégation des données.

Là encore, les Polars sont plus performants que les Pandas. Mais la marge n’est pas aussi importante que celle du filtrage des lignes.

Appliquer des fonctions aux données

Cette tâche consiste à appliquer une fonction à une ou plusieurs colonnes. Elle mesure le temps qu’il faut à chaque bibliothèque pour multiplier les Achat colonne par 2.

Un diagramme à barres montrant la comparaison entre le temps d'exécution pris par les Pandas et les Polars pour appliquer une fonction.

La barre Polars est à peine visible. Une fois de plus, les Polars sont plus performants que les Pandas.

Fusion de données

Cette tâche consiste à fusionner deux ou plusieurs DataFrames sur la base de l’existence d’une ou plusieurs colonnes communes. Elle mesure le temps qu’il faut à chaque bibliothèque pour fusionner les données des ID_utilisateur et Achat colonnes de deux DataFrames distinctes.

Un diagramme à barres montrant la comparaison entre le temps d'exécution de Pandas et celui de Polars lors de la fusion de données.

Les deux bibliothèques ont besoin d’un certain temps pour réaliser cette tâche. Mais Polars prend presque la moitié du temps nécessaire à Pandas pour fusionner les données.

Pourquoi Polars est-il capable de surpasser Pandas ?

Dans toutes les tâches de manipulation de données ci-dessus, Polars est plus performant que Pandas. Il y a plusieurs raisons pour lesquelles Polars peut être plus performant que Pandas en termes de temps d’exécution.

  • Optimisation de la mémoire: Polars utilise Rust, un langage de programmation système qui optimise l’utilisation de la mémoire. Cela permet à Polars de minimiser le temps qu’il passe sur l’allocation et la désallocation de la mémoire. Le temps d’exécution est donc plus rapide.
  • Opérations SIMD (Single Instruction Multiple Data): Polars utilise des opérations SIMD pour effectuer des calculs sur les données. Cela signifie qu’il peut utiliser une seule instruction pour effectuer la même opération sur plusieurs éléments de données simultanément. Cela permet à Polars d’effectuer des opérations beaucoup plus rapidement que Pandas, qui utilise une approche à un seul thread.
  • Évaluation paresseuse: Polars utilise l’évaluation paresseuse pour retarder l’exécution des opérations jusqu’à ce qu’il en ait besoin. Cela réduit le temps que Polars consacre aux opérations inutiles et améliore les performances.

Développez vos compétences en science des données

Il existe de nombreuses bibliothèques Python qui peuvent vous aider dans le domaine de la science des données. Pandas et Polars n’en sont qu’une petite partie. Pour améliorer les performances de votre programme, vous devriez vous familiariser avec d’autres bibliothèques de science des données. Cela vous aidera à comparer et à choisir la bibliothèque qui convient le mieux à votre cas d’utilisation.