Kantil ve histogram hesaplama

Polars ile Veri Dönüşümü

Liam Brannigan

Data Scientist & Polars Contributor

Kantiller ve histogramlar

reviews = pl.read_csv("restaurants_quantiles.csv")
shape: (15, 4)
| business         | location      | review | price |
| ---              | ---           | ---    | ---   |
| str              | str           | f64    | i64   |
|------------------|---------------|--------|-------|
| 7burgers         | Wakey Wakey   | 4.2    | 15    |
| Bang Bang Burger | Forest Rd.    | 3.8    | 12    |
| ...              | ...           | ...    | ...   |
| The Old Ivy      | Angel         | 4.1    | 28    |
| Franco Manca     | Brixton Rd.   | 4.0    | 22    |
Polars ile Veri Dönüşümü

Kantile dayalı sınıflandırma

Yükselen sırada restoran fiyatlarını gösteren çubuk grafik.

Polars ile Veri Dönüşümü

Kantile dayalı sınıflandırma

Yükselen sırada restoran fiyatlarını ve referans çizgisi olarak 33. yüzdelik dilimi gösteren çubuk grafik.

Polars ile Veri Dönüşümü

Kantile dayalı sınıflandırma

Yükselen sırada restoran fiyatlarını ve referans çizgileri olarak 33. ve 67. yüzdelik dilimleri gösteren çubuk grafik.

Polars ile Veri Dönüşümü

Değerlendirme veri seti

reviews = pl.read_csv("restaurants_quantiles.csv")
shape: (15, 4)
| business         | location      | review | price |
| ---              | ---           | ---    | ---   |
| str              | str           | f64    | i64   |
|------------------|---------------|--------|-------|
| 7burgers         | Wakey Wakey   | 4.2    | 15    |
| Bang Bang Burger | Forest Rd.    | 3.8    | 12    |
| ...              | ...           | ...    | ...   |
| The Old Ivy      | Angel         | 4.1    | 28    |
| Franco Manca     | Brixton Rd.   | 4.0    | 22    |
Polars ile Veri Dönüşümü

Kantilleri hesaplayın

reviews.select(


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

Kantilleri hesaplayın

reviews.select(
    pl.col("price")

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

Kantilleri hesaplayın

reviews.select(
    pl.col("price").quantile(0.33)

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

Kantilleri hesaplayın

reviews.select(
    pl.col("price").quantile(0.33).alias("budget_cutoff"),

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

Kantilleri hesaplayın

reviews.select(
    pl.col("price").quantile(0.33).alias("budget_cutoff"),
    pl.col("price").quantile(0.67).alias("mid_cutoff")
)
shape: (1, 2)
| budget_cutoff | mid_cutoff |
| ---           | ---        |
| f64           | f64        |
|---------------|------------|
| 14.0          | 20.0       |
Polars ile Veri Dönüşümü

Kantillerle kategoriler oluşturma

reviews.with_columns(
    pl.when(pl.col("price") <= pl.col("price").quantile(0.33)).then(pl.lit("budget"))


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

Kantillerle kategoriler oluşturma

reviews.with_columns(
    pl.when(pl.col("price") <= pl.col("price").quantile(0.33)).then(pl.lit("budget"))
    .when(pl.col("price") <= pl.col("price").quantile(0.67)).then(pl.lit("mid"))

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

Kantillerle kategoriler oluşturma

reviews.with_columns(
    pl.when(pl.col("price") <= pl.col("price").quantile(0.33)).then(pl.lit("budget"))
    .when(pl.col("price") <= pl.col("price").quantile(0.67)).then(pl.lit("mid"))
    .otherwise(pl.lit("premium")).alias("price_band")
)
shape: (15, 5)
| business         | location      | review | price | price_band |
| ---              | ---           | ---    | ---   | ---        |
| str              | str           | f64    | i64   | str        |
|------------------|---------------|--------|-------|------------|
| 7burgers         | Wakey Wakey   | 4.2    | 15    | mid        |
| Bang Bang Burger | Forest Rd.    | 3.8    | 12    | budget     |
| ...              | ...           | ...    | ...   | ...        |
Polars ile Veri Dönüşümü

Kantil ve sabit aralıklar

$$

Kantil eşikleri

  • Mevcut veriye dayanır
  • Dengeli grup boyutları
  • Veri değiştikçe uyum sağlar

$$

Sabit eşikler

  • Örnek: 10 ve 20 pound
  • Grup boyutları belirsiz
  • Anlaşılması kolay
Polars ile Veri Dönüşümü

Sabit eşiklerle kategoriler

reviews.with_columns(


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

Sabit eşiklerle kategoriler

reviews.with_columns(
    pl.col("price")

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

Sabit eşiklerle kategoriler

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

Sabit eşiklerle kategoriler

reviews.with_columns(
    pl.col("price")
    .cut(breaks=[10, 20] 
)
Polars ile Veri Dönüşümü

Sabit eşiklerle kategoriler

reviews.with_columns(
    pl.col("price")
    .cut(breaks=[10, 20], labels=["budget", "mid", "premium"]) 
)
Polars ile Veri Dönüşümü

Sabit eşiklerle kategoriler

reviews.with_columns(
    pl.col("price")
    .cut(breaks=[10, 20], labels=["budget", "mid", "premium"]).alias("price_band")
)
shape: (15, 5)
| business         | location      | review | price | price_band |
| ---              | ---           | ---    | ---   | ---        |
| str              | str           | f64    | i64   | cat        |
|------------------|---------------|--------|-------|------------|
| 7burgers         | Wakey Wakey   | 4.2    | 15    | mid        |
| Costa Coffee     | City Point    | 4.5    | 8     | budget     |
| The Queens Head  | Denman St.    | 4.7    | 25    | premium    |
| ...              | ...           | ...    | ...   | ...        |
Polars ile Veri Dönüşümü

Histogram oluşturun

reviews["price"]
Polars ile Veri Dönüşümü

Histogram oluşturun

reviews["price"].hist()
shape: (10, 3)
| breakpoint | category     | count |
| ---        | ---          | ---   |
| f64        | cat          | u32   |
|------------|--------------|-------|
| 8.4        | [6.0, 8.4]   | 3     |
| 10.8       | (8.4, 10.8]  | 1     |
| ...        | ...          | ...   |
| 27.6       | (25.2, 27.6] | 0     |
| 30.0       | (27.6, 30.0] | 2     |
Polars ile Veri Dönüşümü

Tanımlı kova sayısı ile histogram

reviews["price"].hist(bin_count=5)
shape: (5, 3)
| breakpoint | category      | count |
| ---        | ---           | ---   |
| f64        | cat           | u32   |
|------------|---------------|-------|
| 10.8       | [6.0, 10.8]   | 4     |
| 15.6       | (10.8, 15.6]  | 3     |
| 20.4       | (15.6, 20.4]  | 3     |
| 25.2       | (20.4, 25.2]  | 3     |
| 30.0       | (25.2, 30.0]  | 2     |
Polars ile Veri Dönüşümü

Tanımlı kırılma noktalarıyla histogram

reviews["price"].hist(bins=[0, 10, 20, 100])
shape: (3, 3)
| breakpoint | category       | count |
| ---        | ---            | ---   |
| f64        | cat            | u32   |
|------------|----------------|-------|
| 10.0       | [0.0, 10.0]    | 4     |
| 20.0       | (10.0, 20.0]   | 6     |
| 100.0      | (20.0, 100.0]  | 5     |
Polars ile Veri Dönüşümü

Histogramı görselleştirin

import plotly.express as px


hist = reviews["price"].hist(bins=[0, 10, 20, 100])
Polars ile Veri Dönüşümü

Histogramı görselleştirin

import plotly.express as px

hist = reviews["price"].hist(bins=[0, 10, 20, 100])

fig = px.bar(hist, x="category", y="count")

fig.show()
Polars ile Veri Dönüşümü

Histogramı görselleştirin

Polars ile Veri Dönüşümü

Haydi pratik yapalım!

Polars ile Veri Dönüşümü

Preparing Video For Download...