Machen Sie Pandas dreimal schneller mit PyPolars

Quellknoten: 1854103

Machen Sie Pandas dreimal schneller mit PyPolars

Stichworte: Pandas, Leistung, Python

Erfahren Sie, wie Sie Ihren Pandas-Workflow mit der PyPolars-Bibliothek beschleunigen.


By Satyam Kumar, Enthusiast und Programmierer für maschinelles Lernen



Photo by Tim Gouw on Unsplash

 

Pandas ist eines der wichtigsten Python-Pakete unter den Datenwissenschaftlern, um mit den Daten herumzuspielen. Die Pandas-Bibliothek wird hauptsächlich für Datenexplorationen und -visualisierungen verwendet, da sie über unzählige integrierte Funktionen verfügt. Pandas können große Datensätze nicht verarbeiten, da sie ihren Prozess nicht skalieren oder auf alle Kerne der CPU verteilen.

Um die Berechnungen zu beschleunigen, kann man alle Kerne der CPU nutzen und den Workflow beschleunigen. Es gibt verschiedene Open-Source-Bibliotheken, darunter Dask, Vaex, Modin, Pandarallel, PyPolars usw., die die Berechnungen über mehrere Kerne der CPU parallelisieren. In diesem Artikel werden wir die Implementierung und Verwendung der PyPolars-Bibliothek diskutieren und ihre Leistung mit der Pandas-Bibliothek vergleichen.

Was ist PyPolars?

 
PyPolars ist eine Open-Source-Python-Datenrahmenbibliothek ähnlich wie Pandas. PyPolars nutzt alle verfügbaren Kerne der CPU und führt die Berechnungen daher schneller durch als Pandas. PyPolars hat eine ähnliche API wie Pandas. Es ist in Rost mit Python-Wrappern geschrieben.


Idealerweise wird PyPolars verwendet, wenn die Daten für Pandas zu groß und für Spark zu klein sind


Wie funktioniert PyPolars?

 
Die PyPolars-Bibliothek verfügt über zwei APIs, eine ist die Eager-API und die andere ist die Lazy-API. Die Eager-API ist der von Pandas sehr ähnlich, und die Ergebnisse werden ähnlich wie bei Pandas direkt nach Abschluss der Ausführung erzeugt. Die Lazy API ist Spark sehr ähnlich, bei der eine Karte oder ein Plan bei der Ausführung einer Abfrage erstellt wird. Anschließend erfolgt die Ausführung parallel über alle Kerne der CPU.



(Bild vom Autor), PyPolars APIs

 

PyPolars ist im Grunde eine Python-Bindung an die Polars-Bibliothek. Der beste Teil der PyPolars-Bibliothek ist die API-Ähnlichkeit zu Pandas, die es den Entwicklern erleichtert.

Installation:

 
PyPolars kann von PyPl mit dem folgenden Befehl installiert werden:

pip install py-polars


und importieren Sie die Bibliothek mit

import pypolars as pl


Benchmark-Zeitbeschränkungen:


Für Demonstrationen habe ich einen großen Datensatz (~ 6.4 GB) mit 25 Millionen Instanzen verwendet.




(Bild vom Autor), Benchmark-Zeitzahl für Grundoperationen von Pandas und Py-Polars

 

Bei den oben genannten Benchmark-Zeitzahlen für einige grundlegende Operationen mit Pandas und der PyPolars-Bibliothek können wir feststellen, dass PyPolars fast 2x bis 3x schneller ist als Pandas.

Jetzt wissen wir, dass PyPolars eine API hat, die der von Pandas sehr ähnlich ist, aber dennoch nicht alle Funktionen von Pandas abdeckt. Wir haben zum Beispiel kein .describe() Funktion in PyPolars, stattdessen können wir verwenden df_pypolars.to_pandas().describe()

Verwendung:

 

(Code nach Autor)

Fazit:

 
In diesem Artikel haben wir eine kleine Einführung in die PyPolars-Bibliothek gegeben, einschließlich ihrer Implementierung, Verwendung und des Vergleichs ihrer Benchmark-Zeitzahlen mit Pandas für einige grundlegende Operationen. Beachten Sie, dass PyPolars sehr ähnlich wie Pandas funktioniert und PyPolars eine speichereffiziente Bibliothek ist, da der von ihr unterstützte Speicher unveränderlich ist.

Man kann durch die  Dokumentation um einen detaillierten Einblick in die Bibliothek zu erhalten. Es gibt verschiedene andere Open-Source-Bibliotheken, die die Pandas-Operationen parallelisieren und den Prozess beschleunigen können. Lies das untenstehender Artikel 4 solcher Bibliotheken kennen:

4 Bibliotheken, die das bestehende Pandas-Ökosystem parallelisieren können
Verteilen Sie Python-Workload durch parallele Verarbeitung mit diesen Frameworks

 
References:

[1] Polars-Dokumentation und GitHub-Repository: https://github.com/ritchie46/polars

 
Danke fürs Lesen

 
Bio: Satyam Kumar ist ein Enthusiast und Programmierer für maschinelles Lernen. Satyam schreibt über Data Science und ist ein Top-Autor im Bereich KI. Er sucht eine herausfordernde Karriere in einem Unternehmen, das die Möglichkeit bietet, seine technischen Fähigkeiten und Fertigkeiten zu nutzen.

Original. Mit Genehmigung erneut veröffentlicht.

Related:

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

Zeitstempel:

Mehr von KDnuggets