Ist es richtig zu behaupten, dass die neue Polars-Bibliothek Pandas in mehreren Benchmarks übertrifft, oder ist die Pandas-Bibliothek immer noch die dominierende Wahl?

Bei der Durchführung von Datenanalyseaufgaben sind Sie wahrscheinlich auf Pandas gestoßen. Sie war lange Zeit die vorherrschende Bibliothek in der Datenanalyse. Polars hingegen ist eine relativ neue Bibliothek, die sich durch hohe Leistung und Speichereffizienz auszeichnet. Aber welches ist besser?

Hier sehen Sie einen Vergleich der Leistung zwischen Pandas und Polars bei einer Reihe gängiger Datenbearbeitungsaufgaben.

Performance messen: Metriken und Benchmark-Datensatz

Dieser Vergleich berücksichtigt die Fähigkeit von Pandas und Polare Bibliotheken, um den Black Friday Sale-Datensatz zu manipulieren Kaggle. Dieses Dataset enthält 550.068 Datenzeilen. Es enthält Informationen über demografische Kundendaten, Kaufhistorie und Produktdetails.

Um faire Leistungsmessungen zu gewährleisten, verwendet der Vergleich die Ausführungszeit als Standardleistungsmetrik für jede Aufgabe. Die Plattform zum Ausführen des Codes für jede Vergleichsaufgabe wird Google Colab sein.

instagram viewer

Der vollständige Quellcode, der die Pandas- und Polars-Bibliotheken vergleicht, ist in a verfügbar GitHub-Repository.

Lesen von Daten aus einer CSV-Datei

Diese Aufgabe vergleicht die Zeit, die jede Bibliothek benötigt, um Daten aus dem Dataset „Black Friday Sale“ zu lesen. Der Datensatz ist drin CSV-Format. Pandas und Polars bieten ähnliche Funktionen für diese Aufgabe.

Pandas brauchen doppelt so lange wie Polars, um Daten im Black Friday Sale-Datensatz zu lesen.

Spalten auswählen

Diese Aufgabe misst die Zeit, die jede Bibliothek benötigt, um die Spalten aus dem Dataset auszuwählen. Es geht um die Auswahl der Benutzer-ID Und Kaufen Säulen.

Polars benötigen im Vergleich zu Pandas deutlich weniger Zeit, um Spalten aus dem Datensatz auszuwählen.

Zeilen filtern

Diese Aufgabe vergleicht die Leistung jeder Bibliothek beim Filtern von Zeilen, in denen die Geschlecht Spalte ist F aus dem Datensatz.

Polars benötigen im Vergleich zu Pandas sehr kurze Zeit, um die Zeilen herauszufiltern.

Gruppieren und Aggregieren von Daten

Diese Aufgabe umfasst das Gruppieren von Daten nach einer oder mehreren Spalten. Führen Sie dann einige Aggregationsfunktionen für die Gruppen durch. Es misst die Zeit, die jede Bibliothek benötigt, um die Daten nach dem zu gruppieren Geschlecht Spalte und berechnen Sie den durchschnittlichen Kaufbetrag für jede Gruppe.

Auch hier übertreffen Polars Pandas. Aber der Spielraum ist nicht so groß wie beim Filtern der Zeilen.

Anwenden von Funktionen auf Daten

Bei dieser Aufgabe wird eine Funktion auf eine oder mehrere Spalten angewendet. Es misst die Zeit, die jede Bibliothek benötigt, um die zu multiplizieren Kaufen Spalte um 2.

Sie können die Polars-Leiste kaum sehen. Polare übertreffen erneut Pandas.

Zusammenführen von Daten

Diese Aufgabe beinhaltet Zusammenführen von zwei oder mehr DataFrames auf der Grundlage, dass eine oder mehrere gemeinsame Spalten vorhanden sind. Es misst die Zeit, die jede Bibliothek zum Zusammenführen benötigt Benutzer-ID Und Kaufen Spalten aus zwei separaten DataFrames.

Es dauert einige Zeit, bis beide Bibliotheken diese Aufgabe abgeschlossen haben. Aber Polars braucht fast die Hälfte der Zeit, die Pandas braucht, um die Daten zusammenzuführen.

Warum Polars in der Lage ist, Pandas zu übertreffen?

Bei allen oben genannten Datenmanipulationsaufgaben übertreffen Polars Pandas. Es gibt mehrere Gründe, warum Polars Pandas in der Ausführungszeit übertreffen können.

  • Speicheroptimierung: Polars verwendet Rust, eine Systemprogrammiersprache, die die Speichernutzung optimiert. Es ermöglicht Polars, die Zeit zu minimieren, die es für die Speicherzuweisung und -freigabe aufwendet. Dadurch wird die Ausführungszeit schneller.
  • SIMD-Operationen (Single Instruction Multiple Data).: Polars verwendet SIMD-Operationen, um Berechnungen mit Daten durchzuführen. Dies bedeutet, dass es eine einzige Anweisung verwenden kann, um dieselbe Operation an mehreren Datenelementen gleichzeitig auszuführen. Dadurch kann Polars Operationen viel schneller ausführen als Pandas, die einen Single-Threaded-Ansatz verwenden.
  • Faule Bewertung: Polars verwendet Lazy Evaluation, um die Ausführung von Operationen zu verzögern, bis sie benötigt werden. Dies reduziert die Zeit, die Polars für unnötige Vorgänge aufwendet, und verbessert die Leistung.

Erweitern Sie Ihre Data-Science-Fähigkeiten

Es gibt viele Python-Bibliotheken, die Ihnen bei der Datenwissenschaft helfen können. Pandas und Polare sind nur ein kleiner Bruchteil. Um die Leistung Ihres Programms zu verbessern, sollten Sie sich mit weiteren Data Science-Bibliotheken vertraut machen. Dies hilft Ihnen zu vergleichen und auszuwählen, welche Bibliothek am besten zu Ihrem Anwendungsfall passt.