Объединение DataFrame

Преобразование данных с помощью 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

Что такое объединение?

Диаграмма с одним DataFrame.

Преобразование данных с помощью Polars

Что такое объединение?

Диаграмма с двумя DataFrame.

Преобразование данных с помощью Polars

Что такое объединение?

Диаграмма с двумя DataFrame и выделенным общим ключом.

Преобразование данных с помощью Polars

Что такое объединение?

Диаграмма объединения двух DataFrame по совпадающим строкам общих столбцов.

Преобразование данных с помощью Polars

Что такое объединение?

Диаграмма объединения двух 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

Left join

reviews.join(inspections, on=["business", "location"],           )
Преобразование данных с помощью 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              |
Преобразование данных с помощью Polars

Full join

reviews.join(inspections, on=["business", "location"],                          )
Преобразование данных с помощью Polars

Full join

reviews.join(inspections, on=["business", "location"], how="full"               )
Преобразование данных с помощью 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           |
Преобразование данных с помощью Polars

Выбор стратегии объединения

2 таблицы

Преобразование данных с помощью Polars

Inner join

Схема inner join

Преобразование данных с помощью Polars

Left join

Схема left join

Преобразование данных с помощью Polars

Full join

Схема full join

Преобразование данных с помощью Polars

Давайте потренируемся!

Преобразование данных с помощью Polars

Preparing Video For Download...