Spojování DataFramů

Data Transformation with Polars

Liam Brannigan

Data Scientist & Polars Contributor

Data s recenzemi

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    |
Data Transformation with Polars

Dataset s inspekcemi

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              |
Data Transformation with Polars

Co je join?

Diagram znázorňující jeden DataFrame.

Data Transformation with Polars

Co je join?

Diagram znázorňující dva DataFramy.

Data Transformation with Polars

Co je join?

Diagram znázorňující dva DataFramy se zvýrazněným společným klíčem.

Data Transformation with Polars

Co je join?

Diagram znázorňující spojení dvou DataFramů podle shodných řádků ve sdílených sloupcích.

Data Transformation with Polars

Co je join?

Diagram znázorňující spojení dvou DataFramů podle shodných řádků ve sdílených sloupcích se zvýrazněným klíčem.

Data Transformation with Polars

Join podle jednoho sloupce

reviews.join(                                       )
Data Transformation with Polars

Join podle jednoho sloupce

reviews.join(inspections,                           )
Data Transformation with Polars

Join podle jednoho sloupce

reviews.join(inspections, on="business"             )
Data Transformation with Polars

Join podle jednoho sloupce

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              |
Data Transformation with Polars

Join podle více sloupců

reviews.join(inspections, on=["business", "location"])
Data Transformation with Polars

Join podle více sloupců

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              |
Data Transformation with Polars

Left join

reviews.join(inspections, on=["business", "location"],           )
Data Transformation with 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              |
Data Transformation with Polars

Full join

reviews.join(inspections, on=["business", "location"],                          )
Data Transformation with Polars

Full join

reviews.join(inspections, on=["business", "location"], how="full"               )
Data Transformation with 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           |
Data Transformation with Polars

Výběr strategie joinu

2 tabulky

Data Transformation with Polars

Inner join

Znázornění inner joinu

Data Transformation with Polars

Left join

Znázornění left joinu

Data Transformation with Polars

Full join

Znázornění full joinu

Data Transformation with Polars

Pojďme cvičit!

Data Transformation with Polars

Preparing Video For Download...