Tính hạng và tương quan

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

Liam Brannigan

Data Scientist & Polars Contributor

Xếp hạng

Bảng hiển thị số lần vô địch World Cup.

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

Xếp hạng

Bảng hiển thị số lần vô địch World Cup với một cột xếp hạng.

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

Xếp hạng

Bảng hiển thị số lần vô địch World Cup với hai cột xếp hạng theo các phương pháp khác nhau.

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

Dữ liệu địa điểm của chúng ta

venues
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              |
| The Queens Head | Denman St.  | 4.7    | 25    | bar        | 5              |
| Costa Coffee    | Waterloo    | 4.1    | 8     | café       | 3              |
Biến đổi dữ liệu với Polars

Xếp hạng địa điểm theo giá

venues.with_columns(

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

Xếp hạng địa điểm theo giá

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

Xếp hạng địa điểm theo giá

venues.with_columns(
    pl.col("price").rank(descending=False)
)
Biến đổi dữ liệu với Polars

Xếp hạng địa điểm theo giá

venues.with_columns(
    pl.col("price").rank(descending=False).alias("rank_default")
)
Biến đổi dữ liệu với Polars

Địa điểm đã được xếp hạng

shape: (4, 7)
| business        | location    | review | price | ...   | rank_default |
| ---             | ---         | ---    | ---   | ---   | ---          |
| str             | str         | f64    | i64   | ...   | f64          |
|-----------------|-------------|--------|-------|-------|--------------|
| 7burgers        | Wakey Wakey | 4.2    | 15    | ...   | 3.0          |
| Costa Coffee    | City Point  | 4.5    | 8     | ...   | 1.5          |
| The Queens Head | Denman St.  | 4.7    | 25    | ...   | 4.0          |
| Costa Coffee    | Waterloo    | 4.1    | 8     | ...   | 1.5          |
Biến đổi dữ liệu với Polars

Xếp hạng: thêm kiểu min

venues.with_columns(
    pl.col("price").rank(descending=False).alias("rank_default"),
    pl.col("price").rank(method="min", descending=False).alias("rank_min")
)
shape: (4, 8)
| business        | ... | price | rank_default | rank_min |
| ---             | --- | ---   | ---          | ---      |
| str             | ... | i64   | f64          | i64      |
|-----------------|-----|-------|--------------|----------|
| 7burgers        | ... | 15    | 3.0          | 3        |
| Costa Coffee    | ... | 8     | 1.5          | 1        |
| The Queens Head | ... | 25    | 4.0          | 4        |
| Costa Coffee    | ... | 8     | 1.5          | 1        |
Biến đổi dữ liệu với Polars

Nên dùng kiểu xếp hạng nào?

$$

Hạng mặc định
  • Kết quả số thực
  • Tốt cho phân tích

$$

Hạng min
  • Kết quả kiểu số nguyên
  • Tốt cho hiển thị top-N
Biến đổi dữ liệu với Polars

Tương quan đánh giá người dùng

user_reviews = pl.read_csv("user_reviews.csv")
shape: (4, 4)
| business        | Alice | Bob  | Charlie |
| ---             | ---   | ---  | ---     |
| str             | i64   | i64  | i64     |
|-----------------|-------|------|---------|
| 7burgers        | 9     | 6    | 8       |
| Costa Coffee    | 3     | 9    | 5       |
| The Queens Head | 9     | 7    | 9       |
| Nando's         | 7     | 8    | 8       |
Biến đổi dữ liệu với Polars

Tính tương quan

correlations = user_reviews.select(                    )

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

Tính tương quan

correlations = user_reviews.select(pl.selectors.integer())

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

Tính tương quan

correlations = user_reviews.select(pl.selectors.integer()).corr()
correlations
shape: (3, 3)
| Alice   | Bob     | Charlie |
| ---     | ---     | ---     |
| f64     | f64     | f64     |
|---------|---------|---------|
| 1.0     | -0.913  | 0.953   |
| -0.913  | 1.0     | -0.745  |
| 0.953   | -0.745  | 1.0     |
Biến đổi dữ liệu với Polars

Thêm cột người dùng

correlations.with_columns(pl.Series("user", correlations.columns))
shape: (3, 4)
| user    | Alice   | Bob     | Charlie |
| ---     | ---     | ---     | ---     |
| str     | f64     | f64     | f64     |
|---------|---------|---------|---------|
| Alice   | 1.00    | -0.91   | 0.95    |
| Bob     | -0.91   | 1.00    | -0.74   |
| Charlie | 0.95    | -0.74   | 1.00    |
Biến đổi dữ liệu với Polars

Tóm tắt nhanh với .describe()

venues.select("review", "price").describe(                   )
Biến đổi dữ liệu với Polars

Tóm tắt nhanh với .describe()

venues.select("review", "price").describe(percentiles=[0.33, 0.67])
Biến đổi dữ liệu với Polars

Tóm tắt nhanh với .describe()

shape: (8, 3)
| statistic  | review   | price    |
| ---        | ---      | ---      |
| str        | f64      | f64      |
|------------|----------|----------|
| count      | 4.0      | 4.0      |
| null_count | 0.0      | 0.0      |
| mean       | 4.3      | 15.0     |
| std        | 0.391578 | 7.25718  |
| min        | 3.8      | 8.0      |
| 33%        | 4.2      | 12.0     |
| 67%        | 4.5      | 15.0     |
| max        | 4.7      | 25.0     |
Biến đổi dữ liệu với Polars

Ayo berlatih!

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

Preparing Video For Download...