Об'єднання датафреймів

Перетворення даних у Polars

Liam Brannigan

Data Scientist & Polars Contributor

Дані відгуків

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    |
Перетворення даних у Polars

Набір даних з інспекцій

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              |
Перетворення даних у Polars

Що таке join?

Схема, що показує один DataFrame.

Перетворення даних у Polars

Що таке join?

Схема, що показує два DataFrame.

Перетворення даних у Polars

Що таке join?

Два DataFrame з підсвіченим збігом ключа.

Перетворення даних у Polars

Що таке join?

Два DataFrame об'єднуються за збігом рядків у спільних стовпцях.

Перетворення даних у Polars

Що таке join?

Два DataFrame об'єднуються за спільними стовпцями з підсвіченим ключем.

Перетворення даних у Polars

Об'єднання за одним стовпцем

reviews.join(                                       )
Перетворення даних у Polars

Об'єднання за одним стовпцем

reviews.join(inspections,                           )
Перетворення даних у Polars

Об'єднання за одним стовпцем

reviews.join(inspections, on="business"             )
Перетворення даних у Polars

Об'єднання за одним стовпцем

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              |
Перетворення даних у Polars

Об'єднання за кількома стовпцями

reviews.join(inspections, on=["business", "location"])
Перетворення даних у Polars

Об'єднання за кількома стовпцями

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              |
Перетворення даних у Polars

Ліве об'єднання

reviews.join(inspections, on=["business", "location"],           )
Перетворення даних у Polars

Ліве об'єднання

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              |
Перетворення даних у Polars

Повне об'єднання

reviews.join(inspections, on=["business", "location"],                          )
Перетворення даних у Polars

Повне об'єднання

reviews.join(inspections, on=["business", "location"], how="full"               )
Перетворення даних у Polars

Повне об'єднання

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           |
Перетворення даних у Polars

Вибір стратегії об'єднання

2 таблиці

Перетворення даних у Polars

Inner join

Схема inner join

Перетворення даних у Polars

Ліве об'єднання

Схема left join

Перетворення даних у Polars

Повне об'єднання

Схема full join

Перетворення даних у Polars

Давайте потренуємось!

Перетворення даних у Polars

Preparing Video For Download...