Wie man CSV in Polars erklärt liest
Updated on
Polars, eine schnelle DataFrame-Bibliothek in Python, bietet eine vertraute und leistungsstarke Schnittstelle für die Verarbeitung strukturierter Daten. Besonders beim Umgang mit CSV-Dateien glänzt Polars durch einfache Methoden wie read_csv()
und scan_csv()
, die an die Methoden in pandas erinnern. Lassen Sie uns lernen, wie wir das Beste aus ihnen herausholen können.
CSV-Import mit read_csv()
Polars bietet eine benutzerfreundliche Methode read_csv()
zum Importieren von CSV-Dateien. Die Syntax ist verblüffend ähnlich zu pandas, was den Übergang für diejenigen erleichtert, die damit vertraut sind. Hier ist eine kurze Demonstration:
import polars as pl
# CSV mit read_csv lesen
df = pl.read_csv('data_sample.csv')
print(df)
Ausgabe:
Form: (3, 4)
┌───────────┬───────┬─────┬───────────────────┐
│ studentId ┆ Name ┆ Age ┆ FirstEnrollment │
│ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ i64 ┆ str │
╞═══════════╪═══════╪═════╪═══════════════════╡
│ 1 ┆ Mike ┆ 24 ┆ 2020-01-17 │
│ 2 ┆ Sarah ┆ 33 ┆ 2021-07-23 │
│ 3 ┆ John ┆ 19 ┆ 2022-12-20 │
└───────────┴───────┴─────┴───────────────────┘
Datumsparsing mit read_csv()
Beim Importieren von CSV-Dateien möchten Sie möglicherweise bestimmte Spalten als Datum-Zeit-Objekte analysieren. Dies ist mit dem Parameter parse_dates=True
möglich. Hier ein Beispiel:
# CSV mit Datums-Parsing lesen
df_dates = pl.read_csv('data_sample.csv', parse_dates=True)
print(df_dates)
On-the-fly-Spaltenarten ändern
Es ist auch möglich, den Datentyp bestimmter Spalten beim Lesen der Datei zu ändern. Hier ist zum Beispiel, wie Sie die Spalte 'Alter' von i64
zu Int32
konvertieren können:
# CSV mit bestimmtem Datentyp lesen
df_age_casted = pl.read_csv('data_sample.csv', parse_dates=True).with_column(pl.col('Age').cast(pl.Int32))
print(df_age_casted)
Ein Vorteil von Polars gegenüber pandas besteht darin, dass es die Spaltentypen anzeigen kann, wenn ein DataFrame angezeigt wird, wodurch das Troubleshooting von Datentypen erleichtert wird.
Lesen optimieren mit scan_csv()
Für große Datensätze bietet Polars eine ressourcenschonendere Methode - scan_csv()
. Durch die Nutzung von Lazy Evaluation lädt diese Methode Daten nur dann in den Arbeitsspeicher, wenn es erforderlich ist (d.h., wenn collect()
aufgerufen wird), was den Speicherbedarf potenziell reduziert. Hier ein kurzer Überblick:
# Effizientes Lesen mit scan_csv
q = pl.scan_csv('data_sample.csv')
df_lazy = q.collect()
print(df_lazy)
Vergessen Sie nicht, collect()
aufzurufen, um die Operationen auszuführen. Andernfalls wird eine Darstellung der Operationen (Plan) zurückgegeben.
Dies sind nur einige der Möglichkeiten, wie Polars zur Interaktion mit CSV-Dateien verwendet werden kann. Die klare Syntax und leistungsstarken Funktionen machen es zu einem ausgezeichneten Werkzeug für die Datenmanipulation in Python.
Verstehen von Polars Expressions und Actions
Polars unterstützt sowohl eager- als auch lazy-Operationen. Im eager-Modus werden Berechnungen sofort ausgeführt, während im lazy-Modus Operationen in einer Warteschlange stehen und nur bei Bedarf ausgewertet werden, um Effizienz und Speicherplatz zu optimieren.
Lazy-Evaluation mit scan_csv() nutzen
Mit scan_csv()
werden die Daten nicht sofort in den Arbeitsspeicher geladen. Stattdessen erstellt Polars einen Abfrageplan, der die durchzuführenden Operationen enthält. Dieser Abfrageplan wird erst ausgeführt, wenn collect()
aufgerufen wird. Diese Technik, die als Lazy Evaluation bekannt ist, kann zu einer effizienteren Nutzung des Arbeitsspeichers und einer schnelleren Berechnung führen, insbesondere bei großen Datensätzen. Hier ein Beispiel:
# Lazy-Lesen mit scan_csv
query = pl.scan_csv('data_sample.csv')
print(query)
Die Ausführung des obigen Codes führt zu einer Zusammenfassung des "Plans" der Operationen, aber die Operationen selbst werden noch nicht ausgeführt.
Naiver Plan: (Führen Sie LazyFrame.describe_optimized_plan() aus, um den optimierten Plan zu sehen)
CSV SCAN data_sample.csv
PROJECT */4 SPALTEN
Um diesen Plan auszuführen und die Daten in den Speicher zu laden, müssen Sie die Methode collect()
verwenden:
df_lazy = query.collect()
print(df_lazy)
Mehr als nur das Lesen von CSV-Dateien: Datenmanipulation
Neben dem Lesen von CSV-Dateien bietet Polars eine umfangreiche Suite von Datenmanipulationsfunktionen, die gut mit den Operationen in pandas kompatibel sind. Dadurch wird Polars zu einem effizienten und vielseitigen Werkzeug für die Datenanalyse. Egal ob Sie Daten filtern, Transformationen anwenden oder Informationen aggregieren möchten, Polars kann dies alles mit hoher Leistung bewältigen.
Visualisieren Sie Ihr 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 DataFrame ganz einfach zu erstellen.
Sie müssen keine komplizierten Verarbeitungen mehr mit Python-Code durchführen. Importieren Sie einfach Ihre Daten und ziehen Sie Variablen, um alle Arten von Datenvisualisierungen zu erstellen! Hier ist ein schnelles 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 auch in Kaggle Notebook/Google Colab ausprobieren:
PyGWalker basiert auf der Unterstützung unserer Open Source Community. Vergessen Sie nicht, PyGWalker auf GitHub (opens in a new tab) anzusehen und uns ein ⭐️ zu geben!
FAQs:
Beim Navigieren durch Polars können Sie auf einige Fragen stoßen. Hier sind einige häufig gestellte Fragen:
- Was ist der Hauptunterschied zwischen den Funktionen
read_csv()
undscan_csv()
in Polars?
read_csv()
ist eine einfache Funktion, die eine CSV-Datei liest und die gesamten Daten in den Speicher lädt. Andererseits arbeitet scan_csv()
träge, d.h. es lädt die Daten erst, wenn collect()
aufgerufen wird. Dies macht scan_csv()
effizienter beim Arbeiten mit großen Datensätzen, da nur die notwendigen Daten in den Speicher geladen werden.
- Kann Polars das Datum beim Lesen von CSV-Dateien analysieren?
Ja, Polars kann das Datum analysieren. Wenn Sie die Funktion read_csv()
verwenden, setzen Sie einfach das Argument parse_dates=True
und Polars versucht, Spalten mit Datumsinformationen automatisch zu analysieren.
- Kann ich den Datentyp bestimmter Spalten beim Lesen einer CSV-Datei ändern?
Absolut. Polars ermöglicht es Ihnen, den Datentyp von Spalten während des Lesens einer CSV-Datei zu ändern. Sie können die Methode with_columns()
in Verbindung mit der Funktion cast()
verwenden, um dies zu erreichen. Zum Beispiel ändert df = pl.read_csv('data.csv').with_columns(pl.col('Age').cast(pl.Int32))
die Spalte 'Age' in den Typ Int32
.