Unindo DataFrames

Transformação de Dados com Polars

Liam Brannigan

Data Scientist & Polars Contributor

Dados de reviews

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    |
Transformação de Dados com Polars

O dataset de inspeções

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              |
Transformação de Dados com Polars

O que é um join?

Diagrama mostrando um único DataFrame.

Transformação de Dados com Polars

O que é um join?

Diagrama mostrando dois DataFrames.

Transformação de Dados com Polars

O que é um join?

Diagrama mostrando dois DataFrames com uma chave correspondente destacada.

Transformação de Dados com Polars

O que é um join?

Diagrama mostrando dois DataFrames combinados por linhas que batem em colunas comuns.

Transformação de Dados com Polars

O que é um join?

Diagrama mostrando dois DataFrames combinados por linhas que batem em colunas comuns, com uma chave destacada.

Transformação de Dados com Polars

Join em uma coluna

reviews.join(                                       )
Transformação de Dados com Polars

Join em uma coluna

reviews.join(inspections,                           )
Transformação de Dados com Polars

Join em uma coluna

reviews.join(inspections, on="business"             )
Transformação de Dados com Polars

Join em uma coluna

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              |
Transformação de Dados com Polars

Join em várias colunas

reviews.join(inspections, on=["business", "location"])
Transformação de Dados com Polars

Join em várias colunas

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              |
Transformação de Dados com Polars

Left join

reviews.join(inspections, on=["business", "location"],           )
Transformação de Dados com 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              |
Transformação de Dados com Polars

Full join

reviews.join(inspections, on=["business", "location"],                          )
Transformação de Dados com Polars

Full join

reviews.join(inspections, on=["business", "location"], how="full"               )
Transformação de Dados com 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           |
Transformação de Dados com Polars

Escolhendo a estratégia de join

2 tabelas

Transformação de Dados com Polars

Inner join

Representação de inner join

Transformação de Dados com Polars

Left join

Representação de left join

Transformação de Dados com Polars

Full join

Representação de full join

Transformação de Dados com Polars

Vamos praticar!

Transformação de Dados com Polars

Preparing Video For Download...