Einführung in das Polars DataFrame

Einstieg in Polars

Liam Brannigan

Data Scientist and Polars Contributor

Lern die Lehrkraft kennen

$$

  • Liam Brannigan, Lead Data Scientist
  • ML- und Data-Engineering-Spezialist
  • Polars-Mitwirkender

Profilbild der Lehrkraft.

Einstieg in Polars

Tabellendaten

shape: (49, 8)
| name        | type    | price | bedrooms | doubles | singles | review | beach |
| ---         | ---     | ---   | ---      | ---     | ---     | ---    | ---   |
| str         | str     | i64   | i64      | i64     | i64     | f64    | bool  |
|-------------|---------|-------|----------|---------|---------|--------|-------|
| Waves       | Cottage | 540   | 4        | 1       | 2       | 8.9    | false |
| Seashells   | Cottage | 540   | 4        | 2       | 2       | 8.7    | true  |
| Lake view   | Cottage | 714   | 3        | 1       | 4       | 9.2    | true  |
| Piran View  | null    | 775   | null     | 1       | 3       | 9.6    | false |
| Palma Villa | Cottage | 1772  | 4        | 1       | 2       | 9.6    | true  |
Einstieg in Polars

Nebeneinander: ein Eisbär im Schnee und ein Panda im Wald.

  • Polars ist meist schneller als Pandas → paralleles Rechnen
  • Polars-Lazy Mode ermöglicht optimierte Abfragen
Einstieg in Polars

Die Logos von Apache Arrow und Rust.

  • Apache Arrow: speichert Tabellendaten im Speicher
  • Rust: schnelle Sprache für Datenverarbeitung
Einstieg in Polars

Ein Schema einer Datenbank als Illustration für das Laden von Daten.

  • Daten laden und prüfen
Einstieg in Polars

Ein Schema einer Datenbank und Zahnräder als Illustration für eine Transformation.

  • Daten laden und prüfen
  • Daten transformieren und optimieren
Einstieg in Polars

Ein Schema einer Datenbank, Zahnräder und ein Diagramm als Illustration für Analyse.

  • Daten laden und prüfen
  • Daten transformieren und optimieren
  • Daten analysieren
Einstieg in Polars

Eine CSV einlesen

import polars as pl


rentals = pl.read_csv("vacation_rentals.csv")
Einstieg in Polars

Erste Zeilen eines DataFrames

rentals.head(3)

Erste Zeilen des DataFrames rentals.

Einstieg in Polars

Erste Zeilen eines DataFrames

rentals.head(3)

Das DataFrame rentals mit markierter Form (shape).

Einstieg in Polars

Erste Zeilen eines DataFrames

rentals.head(3)

Das DataFrame rentals mit markierter erster Spalte.

  • dtype: der Datentyp einer Spalte
Einstieg in Polars

Erste Zeilen eines DataFrames

rentals.head(3)

Das DataFrame rentals mit markierter Spalte „review“.

Einstieg in Polars

Letzte Zeilen eines DataFrames

rentals.tail()
shape: (5, 8)
| name                | type      | price | bedrooms | doubles | singles | review | beach |
| ---                 | ---       | ---   | ---      | ---     | ---     | ---    | ---   |
| str                 | str       | i64   | i64      | i64     | i64     | f64    | bool  |
|---------------------|-----------|-------|----------|---------|---------|--------|-------|
| Hengar Manor House  | Cottage   | 615   | 4        | 1       | 5       | 9.4    | false |
| Tudor Cottage Hayle | Cottage   | 489   | 3        | 2       | 3       | 8.9    | false |
| Tolcarne Apartments | Apartment | 1764  | 3        | 1       | 4       | 9.3    | true  |
| Tolcarne Apartments | Apartment | 1605  | 3        | 1       | 4       | 9.3    | true  |
| Tehidy Holiday Park | Cottage   | 637   | 4        | 2       | 4       | 9.0    | false |
Einstieg in Polars

DataFrame-Metadaten

rentals.shape
(49, 8)
rentals.columns
['name', 'type', 'price', 'bedrooms', 'doubles', 'singles', 'review', 'beach']
Einstieg in Polars

DataFrame-Schema

rentals.schema
Schema([('name', String),
        ('type', String),
        ('price', Int64),
        ('bedrooms', Int64),
        ('doubles', Int64),
        ('singles', Int64),
        ('review', Float64),
        ('beach', Boolean)])
Einstieg in Polars

Ein DataFrame untersuchen

rentals.glimpse()
Rows: 49
Columns: 8
$ name      <str> 'Waves', 'Seashells', 'Lake view', 'Piran View',...
$ type      <str> 'Cottage', 'Cottage', 'Cottage', None, 'Cottage',...
$ price     <i64> 540, 540, 714, 775, 1772, 934, 1947, 1026, 705, 863
$ bedrooms  <i64> 4, 4, 3, None, 4, 3, 4, 3, 4, 3
$ doubles   <i64> 1, 2, 1, 1, 1, 1, 1, 1, 1, 1
$ singles   <i64> 2, 2, 4, 3, 2, 4, 2, 4, 2, 2
$ review    <f64> 8.9, 8.7, 9.2, 9.6, 9.6, 8.6, 9.6, 8.6, 9.7, 9.1
$ beach    <bool> False, True, True, False, True, True, True, True, True, True
Einstieg in Polars

Lass uns üben!

Einstieg in Polars

Preparing Video For Download...