Îmbinarea DataFrame-urilor

Transformarea datelor cu Polars

Liam Brannigan

Data Scientist & Polars Contributor

Date despre recenzii

shape: (5, 4)
| business         | location    | review | price |
| ---              | ---         | ---    | ---   |
| str              | str         | f64    | i64   |
|------------------|-------------|--------|-------|
| 7burgers         | Wakey Wakey | 4.2    | 15    |
| Bang Bang Burger | Forest Rd.  | 3.8    | 12    |
| Costa Coffee     | City Point  | 4.5    | 8     |
| Costa Coffee     | Waterloo    | 4.1    | 8     |
| The Queens Head  | Denman St.  | 4.7    | 25    |
Transformarea datelor cu Polars

Setul de date cu inspecții

inspections = pl.read_csv("restaurant_inspections.csv")
shape: (5, 4)
| business        | location    | type       | hygiene_rating |
| ---             | ---         | ---        | ---            |
| str             | str         | str        | i64            |
|-----------------|-------------|------------|----------------|
| 7burgers        | Wakey Wakey | restaurant | 4              |
| Costa Coffee    | City Point  | café       | 5              |
| Costa Coffee    | Waterloo    | café       | 3              |
| The Queens Head | Denman St.  | bar        | 5              |
| Wagamama        | Soho        | restaurant | 4              |
Transformarea datelor cu Polars

Ce este un join?

Diagramă care arată un singur DataFrame.

Transformarea datelor cu Polars

Ce este un join?

Diagramă care arată două DataFrame-uri.

Transformarea datelor cu Polars

Ce este un join?

Diagramă care arată două DataFrame-uri cu cheia de potrivire evidențiată.

Transformarea datelor cu Polars

Ce este un join?

Diagramă care arată două DataFrame-uri combinate prin potrivirea rândurilor pe coloane comune.

Transformarea datelor cu Polars

Ce este un join?

Diagramă care arată două DataFrame-uri combinate prin potrivirea rândurilor pe coloane comune, cu cheia de potrivire evidențiată.

Transformarea datelor cu Polars

Join după o singură coloană

reviews.join(                                       )
Transformarea datelor cu Polars

Join după o singură coloană

reviews.join(inspections,                           )
Transformarea datelor cu Polars

Join după o singură coloană

reviews.join(inspections, on="business"             )
Transformarea datelor cu Polars

Join după o singură coloană

reviews.join(inspections, on="business", how="inner")
shape: (6, 7)
| business      | location    | ... | location_right | hygiene_rating |
| ---           | ---         | ... | ---            | ---            |
| str           | str         | ... | str            | i64            |
|---------------|-------------|-----|----------------|----------------|
| 7burgers      | Wakey Wakey | ... | Wakey Wakey    | 4              |
| Costa Coffee  | City Point  | ... | City Point     | 5              |
| Costa Coffee  | Waterloo    | ... | City Point     | 5              |
| Costa Coffee  | City Point  | ... | Waterloo       | 3              |
| Costa Coffee  | Waterloo    | ... | Waterloo       | 3              |
| The Queens Hd | Denman St.  | ... | Denman St.     | 5              |
Transformarea datelor cu Polars

Join după mai multe coloane

reviews.join(inspections, on=["business", "location"])
Transformarea datelor cu Polars

Join după mai multe coloane

reviews.join(inspections, on=["business", "location"])
shape: (4, 6)
| business        | location    | review | price | type       | hygiene_rating |
| ---             | ---         | ---    | ---   | ---        | ---            |
| str             | str         | f64    | i64   | str        | i64            |
|-----------------|-------------|--------|-------|------------|----------------|
| 7burgers        | Wakey Wakey | 4.2    | 15    | restaurant | 4              |
| Costa Coffee    | City Point  | 4.5    | 8     | café       | 5              |
| Costa Coffee    | Waterloo    | 4.1    | 8     | café       | 3              |
| The Queens Head | Denman St.  | 4.7    | 25    | bar        | 5              |
Transformarea datelor cu Polars

Left join

reviews.join(inspections, on=["business", "location"],           )
Transformarea datelor cu Polars

Left join

reviews.join(inspections, on=["business", "location"], how="left")
shape: (5, 6)
| business         | location    | review | price | type       | hygiene_rating |
| ---              | ---         | ---    | ---   | ---        | ---            |
| str              | str         | f64    | i64   | str        | i64            |
|------------------|-------------|--------|-------|------------|----------------|
| 7burgers         | Wakey Wakey | 4.2    | 15    | restaurant | 4              |
| Bang Bang Burger | Forest Rd.  | 3.8    | 12    | null       | null           |
| Costa Coffee     | City Point  | 4.5    | 8     | café       | 5              |
| Costa Coffee     | Waterloo    | 4.1    | 8     | café       | 3              |
| The Queens Head  | Denman St.  | 4.7    | 25    | bar        | 5              |
Transformarea datelor cu Polars

Full join

reviews.join(inspections, on=["business", "location"],                          )
Transformarea datelor cu Polars

Full join

reviews.join(inspections, on=["business", "location"], how="full"               )
Transformarea datelor cu Polars

Full join

reviews.join(inspections, on=["business", "location"], how="full", coalesce=True)
shape: (6, 6)
| business         | location    | review | price | type       | hygiene_rating |
| ---              | ---         | ---    | ---   | ---        | ---            |
| str              | str         | f64    | i64   | str        | i64            |
|------------------|-------------|--------|-------|------------|----------------|
| 7burgers         | Wakey Wakey | 4.2    | 15    | restaurant | 4              |
| Costa Coffee     | City Point  | 4.5    | 8     | café       | 5              |
| Costa Coffee     | Waterloo    | 4.1    | 8     | café       | 3              |
| The Queens Head  | Denman St.  | 4.7    | 25    | bar        | 5              |
| Wagamama         | Soho        | null   | null  | restaurant | 4              |
| Bang Bang Burger | Forest Rd.  | 3.8    | 12    | null       | null           |
Transformarea datelor cu Polars

Alegerea strategiei de join

2 tabele

Transformarea datelor cu Polars

Inner join

Reprezentarea inner join.

Transformarea datelor cu Polars

Left join

Reprezentarea left join.

Transformarea datelor cu Polars

Full join

Reprezentarea full join.

Transformarea datelor cu Polars

Hai să exersăm!

Transformarea datelor cu Polars

Preparing Video For Download...