Ghép (join) DataFrame

Biến đổi dữ liệu với Polars

Liam Brannigan

Data Scientist & Polars Contributor

Dữ liệu đánh giá (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    |
Biến đổi dữ liệu với Polars

Bộ dữ liệu inspections

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              |
Biến đổi dữ liệu với Polars

Join là gì?

Sơ đồ cho thấy một DataFrame.

Biến đổi dữ liệu với Polars

Join là gì?

Sơ đồ cho thấy hai DataFrame.

Biến đổi dữ liệu với Polars

Join là gì?

Sơ đồ cho thấy hai DataFrame với một khóa khớp được tô sáng.

Biến đổi dữ liệu với Polars

Join là gì?

Sơ đồ cho thấy hai DataFrame được kết hợp bằng cách khớp các hàng trên các cột chung.

Biến đổi dữ liệu với Polars

Join là gì?

Sơ đồ cho thấy hai DataFrame được kết hợp bằng cách khớp các hàng trên các cột chung, với khóa khớp được tô sáng.

Biến đổi dữ liệu với Polars

Join theo một cột

reviews.join(                                       )
Biến đổi dữ liệu với Polars

Join theo một cột

reviews.join(inspections,                           )
Biến đổi dữ liệu với Polars

Join theo một cột

reviews.join(inspections, on="business"             )
Biến đổi dữ liệu với Polars

Join theo một cột

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              |
Biến đổi dữ liệu với Polars

Join theo nhiều cột

reviews.join(inspections, on=["business", "location"])
Biến đổi dữ liệu với Polars

Join theo nhiều cột

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              |
Biến đổi dữ liệu với Polars

Left join (trái)

reviews.join(inspections, on=["business", "location"],           )
Biến đổi dữ liệu với Polars

Left join (trái)

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              |
Biến đổi dữ liệu với Polars

Full join (đầy đủ)

reviews.join(inspections, on=["business", "location"],                          )
Biến đổi dữ liệu với Polars

Full join (đầy đủ)

reviews.join(inspections, on=["business", "location"], how="full"               )
Biến đổi dữ liệu với Polars

Full join (đầy đủ)

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           |
Biến đổi dữ liệu với Polars

Chọn chiến lược join

2 bảng

Biến đổi dữ liệu với Polars

Inner join (giao)

Minh họa inner join

Biến đổi dữ liệu với Polars

Left join (trái)

Minh họa left join

Biến đổi dữ liệu với Polars

Full join (đầy đủ)

Minh họa full join

Biến đổi dữ liệu với Polars

Ayo berlatih!

Biến đổi dữ liệu với Polars

Preparing Video For Download...