Skip to content

Polars DataFrame: Einführung in die Hochgeschwindigkeits-Datenverarbeitung

Updated on

Immer mehr Python-Enthusiasten wenden sich den Hochgeschwindigkeits- und effizienten Datenverarbeitungsfähigkeiten des Polars DataFrame zu und brechen damit aus den vertrauten Bereichen von Pandas aus. Diese DataFrame-Bibliothek, die vollständig in Rust entwickelt wurde, bietet ein leistungsstarkes Toolkit zur Verwaltung großer Datensätze und gewinnt unter Data Scientists und Analysten an Bedeutung. Dieser umfassende Leitfaden taucht in den Polars DataFrame ein, vermittelt ein tieferes Verständnis seiner Funktionalitäten und zeigt auf, wie er eine überlegene Alternative zu Pandas darstellt.

Den Vorteil von Polars gegenüber Pandas nutzen

Ein schneller Vergleich zeigt die deutlichen Vorteile von Polars gegenüber Pandas. Anders als Pandas verwendet Polars keinen Index für den DataFrame, was die Datenmanipulation deutlich vereinfacht. Darüber hinaus verwendet Polars Apache Arrow-Arrays zur internen Darstellung von Daten, was die Ladezeiten, den Speicherbedarf und die Rechenleistung verbessert. Darüber hinaus bietet Polars durch die Verwendung von Rust mehr parallele Operationen, die viele Aufgaben beschleunigen. Und nicht zu vergessen, Polars unterstützt eine trägheitsbasierte Auswertung, die Abfragen basierend auf Bedarf optimiert und den Speicherverbrauch minimiert - eine Funktion, die bei der eifrigen Auswertung von Pandas nicht verfügbar ist.

Einstieg in den Polars DataFrame

Die Installation von Polars ist unkompliziert. Sie können die Befehle pip install polars oder conda install polars verwenden:

pip install polars
conda install polars

Beginnen wir unsere Reise, indem wir einen Polars DataFrame erstellen. Im folgenden Beispiel importieren wir das Modul Polars und erstellen einen DataFrame:

import polars as pl
 
df = pl.DataFrame(
    {
        'Modell': ['iPhone X','iPhone XS','iPhone 12','iPhone 13','Samsung S11','Samsung S12','Mi A1','Mi A2'],
        'Verkäufe': [80,170,130,205,400,30,14,8],     
        'Unternehmen': ['Apple','Apple','Apple','Apple','Samsung','Samsung','Xiao Mi','Xiao Mi'],
    }
)
df

Anders als Pandas erwartet Polars, dass die Spaltenüberschriften Zeichenketten sind. Wenn Sie Integer als Spaltenüberschriften verwenden möchten, stellen Sie sicher, dass Sie sie als Zeichenketten verwenden:

df2 = pl.DataFrame(
    {
        "0" : [1,2,3],
        "1" : [80,170,130],
    }
)

Der Datentyp jeder Spalte in Polars wird auch neben dem Spaltennamen angezeigt. Wenn Sie den Datentyp jeder Spalte explizit anzeigen möchten, können Sie die Methode dtypes verwenden:

df.dtypes

Die Spaltennamen können mit der Eigenschaft columns abgerufen werden:

df.columns    # gibt ['Modell', 'Verkäufe', 'Unternehmen'] zurück

Verwenden Sie die Methode rows(), um den Inhalt des DataFrame als Liste von Tupeln zu erhalten:

df.rows()

Eine wesentliche Eigenschaft von Polars ist, dass es anders als Pandas das Konzept des Index nicht verwenden. Die Designphilosophie von Polars besagt explizit, dass der Index in DataFrames nicht besonders nützlich ist.

Selektion von Spalten in Polars

Die Auswahl von Spalten in Polars ist mühelos. Geben Sie den Spaltennamen mit der Methode select() an:

df.select('Modell')

Die Anweisung gibt einen Polars DataFrame zurück, der die Spalte 'Modell' enthält. Allerdings wird in Polars die eckige Klammer-Indexierungsmethode nicht empfohlen und in seinen zukünftigen Versionen könnte diese Funktion sogar eliminiert werden. Um mehrere Spalten auszuwählen, geben Sie die Spaltennamen als Liste an:

df.select(['Modell','Unternehmen'])

Die Leistung von Ausdrücken ist ein weiteres wichtiges Merkmal in Polars. Um zum Beispiel alle Integer-Spalten (genauer gesagt Int64) im DataFrame abzurufen, können Sie einen Ausdruck in der select()-Methode verwenden:

df.select(pl.col(pl.Int64))

Polars hat eine einzigartige Möglichkeit, Ausdrücke zu verketten. Der folgende Ausdruck z.B. wählt die 'Modell'- und 'Verkäufe'-Spalten aus und sortiert dann die Zeilen basierend auf den Werten in der 'Verkäufe'-Spalte:

df.select(pl.col(['Modell','Verkäufe']).sort_by('Verkäufe'))    

Wenn Sie alle Spalten vom Typ Zeichenkette abrufen möchten, verwenden Sie die Eigenschaft pl.Utf8:

df.select([pl.col(pl.Utf8)])

Ausdrücke in Polars werden im nächsten Teil des Artikels genauer erläutert.

Entdecken der Zeilen-Auswahl in Polars

Um eine einzelne Zeile in einem DataFrame auszuwählen, geben Sie die Zeilennummer mit der Methode row() an:

df.row(0)   # erste Zeile abrufen

Dies ergibt ein Tupel:

('iPhone X', 80, 'Apple')

Für die Auswahl mehrerer Zeilen empfiehlt Polars die Verwendung der Funktion filter(). Wenn Sie z.B. alle Produkte von Apple abrufen möchten, können Sie den folgenden Ausdruck verwenden:

df.filter(pl.col('Unternehmen') == 'Apple')

Sie können mehrere Bedingungen mit logischen Operatoren angeben:

df.filter((pl.col('Unternehmen') == 'Apple') | (pl.col('Unternehmen') == 'Samsung'))

In Polars können Sie die folgenden logischen Operatoren verwenden:

  • | — ODER
  • & — UND
  • ~ — NICHT

Auswahl von Zeilen und Spalten gleichzeitig

Oft möchten Sie Zeilen und Spalten gleichzeitig auswählen. Verketten Sie die Methoden filter() und select(), um dies zu erreichen:

df.filter(pl.col('Unternehmen') == 'Apple').select('Modell')

Die obige Anweisung wählt alle Zeilen aus, die 'Apple' enthalten, und zeigt dann nur die 'Modell'-Spalte an. Um auch die 'Verkäufe'-Spalte anzuzeigen, geben Sie eine Liste an die Methode select():

df.filter(pl.col('Unternehmen') == 'Apple').select(['Modell','Verkäufe'])

Der Kern der Geschichte ist, dass der Polars DataFrame eine effiziente und schnelle Alternative zu traditionellen Pandas bietet. Dabei nutzt er die trägheitsbasierte Auswertung, die Nicht-Index-Richtlinie und die Fähigkeiten zur parallelen Verarbeitung. Von der einfachen Installation bis hin zur komplexen Datenmanipulation erweist sich Polars als leistungsstarkes Werkzeug, das die Datenverarbeitung vereinfacht und die Speichernutzung verbessert.

Visualisieren Sie Ihren Polars DataFrame mit PyGWalker

PyGWalker (opens in a new tab) ist eine Open-Source-Python-Bibliothek, die Ihnen dabei helfen kann, Datenvisualisierungen aus Ihrem Polars-Datenrahmen mühelos zu erstellen.

PyGWalker zur Datenvisualisierung (opens in a new tab)

Sie müssen keine komplizierten Verarbeitungsvorgänge mehr mit Python-Codierung durchführen. Importieren Sie einfach Ihre Daten und ziehen Sie Variablen per Drag & Drop, um alle Arten von Datenvisualisierungen zu erstellen! Hier ist ein kurzes Demo-Video zur Bedienung:


So verwenden Sie PyGWalker in Ihrem Jupyter Notebook:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

Alternativ können Sie es in einem Kaggle Notebook/Google Colab ausprobieren:

PyGWalker in Kaggle Notebook ausführen (opens in a new tab)PyGWalker in Google Colab ausführen (opens in a new tab)PyGWalker auf GitHub ⭐️ geben (opens in a new tab)
PyGWalker in Kaggle Notebook ausführen (opens in a new tab)PyGWalker in Google Colab ausführen (opens in a new tab)PyGWalker in Google Colab ausführen (opens in a new tab)

PyGWalker basiert auf der Unterstützung unserer Open-Source-Community. Vergessen Sie nicht, PyGWalker auf GitHub (opens in a new tab) zu überprüfen und uns einen Stern zu geben!

Häufig gestellte Fragen

  1. Was sind einige wichtige Vorteile von Polars gegenüber Pandas?

    Der Polars DataFrame bietet mehrere Vorteile gegenüber Pandas. Er verwendet Apache Arrow-Arrays für eine effiziente Datenverarbeitung, ist nicht auf Indizes für die Datenmanipulation angewiesen, unterstützt parallele Operationen und verwendet eine Lazy Evaluation zur Optimierung von Abfragen basierend auf Anforderungen, was den Speicherverbrauch verbessert.

  2. Wie kann ich Spalten in einem Polars DataFrame auswählen?

    Der Polars DataFrame bietet die Methode select(), um Spalten auszuwählen. Sie können den Spaltennamen als Zeichenkette übergeben, um eine einzelne Spalte auszuwählen, oder eine Liste von Spaltennamen, um mehrere Spalten auszuwählen.

  3. Wie kann ich Zeilen basierend auf bestimmten Bedingungen in Polars filtern?

    Die Methode filter() wird verwendet, um Zeilen basierend auf bestimmten Bedingungen auszuwählen. Sie können einen Ausdruck an diese Methode übergeben, der eine Spalte mit einem bestimmten Wert vergleicht, um Zeilen zu filtern. Sie können auch logische Operatoren verwenden, um mehrere Bedingungen anzugeben.