Sıralamalar ve korelasyonlar hesaplama

Polars ile Veri Dönüşümü

Liam Brannigan

Data Scientist & Polars Contributor

Sıralama

Dünya kupası zafer sayısını gösteren tablo.

Polars ile Veri Dönüşümü

Sıralama

Sıralama sütunu içeren, dünya kupası zafer sayılarını gösteren tablo.

Polars ile Veri Dönüşümü

Sıralama

Farklı yöntemlerle türetilmiş iki sıralama sütunu olan, dünya kupası zafer sayılarını gösteren tablo.

Polars ile Veri Dönüşümü

Mekân verilerimiz

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              |
Polars ile Veri Dönüşümü

Mekânları fiyata göre sırala

venues.with_columns(

)
Polars ile Veri Dönüşümü

Mekânları fiyata göre sırala

venues.with_columns(
    pl.col("price").rank()
)
Polars ile Veri Dönüşümü

Mekânları fiyata göre sırala

venues.with_columns(
    pl.col("price").rank(descending=False)
)
Polars ile Veri Dönüşümü

Mekânları fiyata göre sırala

venues.with_columns(
    pl.col("price").rank(descending=False).alias("rank_default")
)
Polars ile Veri Dönüşümü

Sıralanmış mekânlar

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          |
Polars ile Veri Dönüşümü

Mekânları sırala: min sıralama ekle

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        |
Polars ile Veri Dönüşümü

Hangi sıralama stilini kullanmalı?

$$

Varsayılan sıralama
  • Kayan nokta çıktı
  • Analitik için uygun

$$

Min sıralama
  • Tamsayı tarzı çıktı
  • Top-N görünümler için uygun
Polars ile Veri Dönüşümü

Kullanıcı yorumlarını korele etme

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       |
Polars ile Veri Dönüşümü

Korelasyonları hesaplama

correlations = user_reviews.select(                    )

Polars ile Veri Dönüşümü

Korelasyonları hesaplama

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

Polars ile Veri Dönüşümü

Korelasyonları hesaplama

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     |
Polars ile Veri Dönüşümü

Bir kullanıcı sütunu ekleme

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    |
Polars ile Veri Dönüşümü

describe() ile hızlı özet

venues.select("review", "price").describe(                   )
Polars ile Veri Dönüşümü

describe() ile hızlı özet

venues.select("review", "price").describe(percentiles=[0.33, 0.67])
Polars ile Veri Dönüşümü

describe() ile hızlı özet

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     |
Polars ile Veri Dönüşümü

Haydi pratik yapalım!

Polars ile Veri Dönüşümü

Preparing Video For Download...