Yuvarlanan ve kümülatif özetler

Polars ile Veri Dönüşümü

Liam Brannigan

Data Scientist & Polars Contributor

Neden yuvarlanan istatistikler?

Elektrik fiyatlarının çizgi grafiği

Polars ile Veri Dönüşümü

Neden yuvarlanan istatistikler?

Yuvarlanan istatistiklerle elektrik fiyatlarının çizgi grafiği

Polars ile Veri Dönüşümü

Bir sütunda yuvarlanan ortalama

prices.with_columns(

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

Bir sütunda yuvarlanan ortalama

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

Bir sütunda yuvarlanan ortalama

prices.with_columns(
    pl.col("price").rolling_mean(window_size=3)
)
Polars ile Veri Dönüşümü

Bir sütunda yuvarlanan ortalama

prices.with_columns(
    pl.col("price").rolling_mean(window_size=3).alias("smoothed")
)
Polars ile Veri Dönüşümü

Bir sütunda yuvarlanan ortalama

prices.with_columns(
    pl.col("price").rolling_mean(window_size=3).alias("smoothed")
)
| time                | price | solar | smoothed |
| ---                 | ---   | ---   | ---      |
| datetime[µs]        | f64   | f64   | f64      |
|---------------------|-------|-------|----------|
| 2025-07-05 00:00:00 | 34.2  | 0.0   | null     |
| 2025-07-05 01:00:00 | 28.7  | 0.0   | null     |

Polars ile Veri Dönüşümü

Bir sütunda yuvarlanan ortalama

prices.with_columns(
    pl.col("price").rolling_mean(window_size=3).alias("smoothed")
)
| time                | price | solar | smoothed |
| ---                 | ---   | ---   | ---      |
| datetime[µs]        | f64   | f64   | f64      |
|---------------------|-------|-------|----------|
| 2025-07-05 00:00:00 | 34.2  | 0.0   | null     |
| 2025-07-05 01:00:00 | 28.7  | 0.0   | null     |
| 2025-07-05 02:00:00 | 27.5  | 0.0   | 30.1     |
Polars ile Veri Dönüşümü

Pencereyi ortalamak

prices.with_columns(
    pl.col("price").rolling_mean(window_size=3,            )
)
Polars ile Veri Dönüşümü

Pencereyi ortalamak

prices.with_columns(
    pl.col("price").rolling_mean(window_size=3, center=True).alias("centered")
)
| time                | price | solar | centered |
| ---                 | ---   | ---   | ---      |
| datetime[µs]        | f64   | f64   | f64      |
|---------------------|-------|-------|----------|
| 2025-07-05 00:00:00 | 34.2  | 0.0   | null     |
| 2025-07-05 01:00:00 | 28.7  | 0.0   | 30.1     |
| 2025-07-05 02:00:00 | 27.5  | 0.0   | 27.1     |
Polars ile Veri Dönüşümü

Diğer yuvarlanan ifadeler

  • .rolling_sum() - yuvarlanan toplam
  • .rolling_std() - yuvarlanan standart sapma
  • .rolling_max() / .rolling_min()
Polars ile Veri Dönüşümü

DataFrame üzerinde yuvarlama

prices.rolling(                                )


Polars ile Veri Dönüşümü

DataFrame üzerinde yuvarlama

prices.rolling(index_column="time",            )


Polars ile Veri Dönüşümü

DataFrame üzerinde yuvarlama

prices.rolling(index_column="time", period="3h")


Polars ile Veri Dönüşümü

DataFrame üzerinde yuvarlama

prices.rolling(index_column="time", period="3h").agg(
    pl.all().mean()
)
Polars ile Veri Dönüşümü

DataFrame üzerinde yuvarlama

prices.rolling(index_column="time", period="3h").agg(
    pl.all().mean()
)
| time                | price | solar  |
| ---                 | ---   | ---    |
| datetime[µs]        | f64   | f64    |
|---------------------|-------|------- |
| 2025-07-05 10:00:00 | 1.8   | 247.3  |
| 2025-07-05 11:00:00 | 1.4   | 347.7  |
| 2025-07-05 12:00:00 | 0.9   | 420.7  |
Polars ile Veri Dönüşümü

Neden kümülatif istatistikler?

Güneş enerjisinin zaman serisi grafiği

  • Görev: kümülatif değerleri hesaplayın
Polars ile Veri Dönüşümü

Neden kümülatif istatistikler?

Kümülatif maksimumla güneş enerjisinin zaman serisi grafiği

Polars ile Veri Dönüşümü

Kümülatif istatistikler

prices.with_columns(
    pl.col("solar")
)
Polars ile Veri Dönüşümü

Kümülatif istatistikler

prices.with_columns(
    pl.col("solar").cum_max()
)
Polars ile Veri Dönüşümü

Kümülatif istatistikler

prices.with_columns(
    pl.col("solar").cum_max().alias("cumulative_solar")
)
Polars ile Veri Dönüşümü

Kümülatif istatistikler

prices.with_columns(
    pl.col("solar").cum_max().alias("cumulative_solar")
)
| time                | price | solar | cumulative_solar |
| ---                 | ---   | ---   | ---              |
| datetime[µs]        | f64   | f64   | f64              |
|---------------------|-------|-------|------------------|
| ...                 | ...   | ...   | ...              |
| 2025-07-05 10:00:00 | 2.3   | 419.0 | 419.0            |
| 2025-07-05 11:00:00 | 0.5   | 481.0 | 481.0            |
| 2025-07-05 12:00:00 | 0.0   | 462.0 | 481.0            |
| ...                 | ...   | ...   | ...              |
Polars ile Veri Dönüşümü

Koşan toplamlar için kümülatif toplam

prices.with_columns(
    pl.col("solar").cum_sum().alias("total_energy")
)
| time                | price | solar | total_energy |
| ---                 | ---   | ---   | ---          |
| datetime[µs]        | f64   | f64   | f64          |
|---------------------|-------|-------|--------------|
| 2025-07-05 06:00:00 | 22.1  | 62.0  | 62.0         |
| 2025-07-05 07:00:00 | 4.5   | 100.0 | 162.0        |
| 2025-07-05 08:00:00 | 1.7   | 180.0 | 342.0        |
Polars ile Veri Dönüşümü

Hadi pratik yapalım!

Polars ile Veri Dönüşümü

Preparing Video For Download...