Tạo biểu thức có điều kiện

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

Liam Brannigan

Data Scientist & Polars Contributor

Phân loại theo chất lượng đánh giá

shape: (5, 5)
| business         | location        | type       | rating | capacity |
| ---              | ---             | ---        | ---    | ---      |
| str              | str             | str        | i64    | i64      |
|------------------|-----------------|------------|--------|----------|
| 7burgers         | Wakey Wakey     | restaurant | 5      | 55       |
| Bang Bang Burger | Forest Rd.      | restaurant | 4      | 55       |
| Costa Coffee     | City Point      | café       | 5      | 41       |
| Costa Coffee     | The Moorgate    | takeaway   | 3      | 0        |
| The Queens Head  | Denman St.      | bar        | 5      | 187      |
  • Nhiệm vụ: xác định nhà hàng được đánh giá cao
Biến đổi dữ liệu với Polars

Phân loại theo chất lượng đánh giá

ratings.with_columns(


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

Phân loại theo chất lượng đánh giá

ratings.with_columns(
    pl.when(                     )

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

Phân loại theo chất lượng đánh giá

ratings.with_columns(
    pl.when(pl.col("rating") == 5)

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

Phân loại theo chất lượng đánh giá

ratings.with_columns(
    pl.when(pl.col("rating") == 5).then(pl.lit("Highly Rated"))

)

$$

$$

  • Dùng pl.lit() để truyền giá trị literal, không phải tên cột
Biến đổi dữ liệu với Polars

Phân loại theo chất lượng đánh giá

ratings.with_columns(
    pl.when(pl.col("rating") == 5).then(pl.lit("Highly Rated"))
    .otherwise(pl.lit("Needs Improvement"))
)
Biến đổi dữ liệu với Polars

Phân loại theo chất lượng đánh giá

ratings.with_columns(
    pl.when(pl.col("rating") == 5).then(pl.lit("Highly Rated"))
    .otherwise(pl.lit("Needs Improvement")).alias("quality")
)
Biến đổi dữ liệu với Polars

Phân loại theo chất lượng đánh giá

ratings.with_columns(
    pl.when(pl.col("rating") == 5).then(pl.lit("Highly Rated"))
    .otherwise(pl.lit("Needs Improvement")).alias("quality")
)
shape: (5, 6)
| business         | location        | type       | rating | capacity | quality            |
| ---              | ---             | ---        | ---    | ---      | ---                |
| str              | str             | str        | i64    | i64      | str                |
|------------------|-----------------|------------|--------|----------|--------------------|
| 7burgers         | Wakey Wakey     | restaurant | 5      | 55       | Highly Rated       |
| Bang Bang Burger | Forest Rd.      | restaurant | 4      | 55       | Needs Improvement  |
| ...              | ...             | ...        | ...    | ...      | ...                |
Biến đổi dữ liệu với Polars

Phân loại theo quy mô địa điểm

shape: (5, 5)
| business         | location        | type       | rating | capacity |
| ---              | ---             | ---        | ---    | ---      |
| str              | str             | str        | i64    | i64      |
|------------------|-----------------|------------|--------|----------|
| 7burgers         | Wakey Wakey     | restaurant | 5      | 55       |
| Bang Bang Burger | Forest Rd.      | restaurant | 4      | 55       |
| Costa Coffee     | City Point      | café       | 5      | 41       |
| Costa Coffee     | The Moorgate    | takeaway   | 3      | 0        |
| The Queens Head  | Denman St.      | bar        | 5      | 187      |
  • Nhiệm vụ: lọc nhà hàng theo sức chứa
Biến đổi dữ liệu với Polars

Phân loại theo quy mô địa điểm

ratings.with_columns(



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

Phân loại theo quy mô địa điểm

ratings.with_columns(
    pl.when(pl.col("capacity") > 100)


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

Phân loại theo quy mô địa điểm

ratings.with_columns(
    pl.when(pl.col("capacity") > 100).then(pl.lit("Large"))


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

Phân loại theo quy mô địa điểm

ratings.with_columns(
    pl.when(pl.col("capacity") > 100).then(pl.lit("Large"))
    .when(pl.col("capacity") >= 20)

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

Phân loại theo quy mô địa điểm

ratings.with_columns(
    pl.when(pl.col("capacity") > 100).then(pl.lit("Large"))
    .when(pl.col("capacity") >= 20).then(pl.lit("Medium"))

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

Phân loại theo quy mô địa điểm

ratings.with_columns(
    pl.when(pl.col("capacity") > 100).then(pl.lit("Large"))
    .when(pl.col("capacity") >= 20).then(pl.lit("Medium"))
    .otherwise(pl.lit("Small"))
)
Biến đổi dữ liệu với Polars

Phân loại theo quy mô địa điểm

ratings.with_columns(
    pl.when(pl.col("capacity") > 100).then(pl.lit("Large"))
    .when(pl.col("capacity") >= 20).then(pl.lit("Medium"))
    .otherwise(pl.lit("Small")).alias("venue_size")
)
shape: (3, 6)
| business         | location        | type       | rating | capacity | venue_size |
| ---              | ---             | ---        | ---    | ---      | ---        |
| str              | str             | str        | i64    | i64      | str        |
|------------------|-----------------|------------|--------|----------|------------|
| 7burgers         | Wakey Wakey     | restaurant | 5      | 55       | Medium     |
| Costa Coffee     | The Moorgate    | takeaway   | 3      | 0        | Small      |
| The Queens Head  | Denman St.      | bar        | 5      | 187      | Large      |
Biến đổi dữ liệu với Polars

Chuẩn hóa loại hình kinh doanh

shape: (5, 5)
| business         | location        | type       | rating | capacity |
| ---              | ---             | ---        | ---    | ---      |
| str              | str             | str        | i64    | i64      |
|------------------|-----------------|------------|--------|----------|
| 7burgers         | Wakey Wakey     | restaurant | 5      | 55       |
| Bang Bang Burger | Forest Rd.      | restaurant | 4      | 55       |
| Costa Coffee     | City Point      | café       | 5      | 41       |
| Costa Coffee     | The Moorgate    | takeaway   | 3      | 0        |
| The Queens Head  | Denman St.      | bar        | 5      | 187      |
  • Nhiệm vụ: chuẩn hóa cột type
Biến đổi dữ liệu với Polars

Chuẩn hóa loại hình kinh doanh

ratings.with_columns(
    pl.col("type")
)
Biến đổi dữ liệu với Polars

Chuẩn hóa loại hình kinh doanh

ratings.with_columns(
    pl.col("type").replace(                    )
)
Biến đổi dữ liệu với Polars

Chuẩn hóa loại hình kinh doanh

ratings.with_columns(
    pl.col("type").replace("café", "restaurant")
)
shape: (5, 5)
| business         | location        | type       | rating | capacity |
| ---              | ---             | ---        | ---    | ---      |
| str              | str             | str        | i64    | i64      |
|------------------|-----------------|------------|--------|----------|
| 7burgers         | Wakey Wakey     | restaurant | 5      | 55       |
| Bang Bang Burger | Forest Rd.      | restaurant | 4      | 55       |
| Costa Coffee     | City Point      | restaurant | 5      | 41       |
| Costa Coffee     | The Moorgate    | takeaway   | 3      | 0        |
| The Queens Head  | Denman St.      | bar        | 5      | 187      |
Biến đổi dữ liệu với Polars

Ayo berlatih!

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

Preparing Video For Download...