रोलिंग और संचयी एग्रीगेशन

Polars के साथ Data Transformation

Liam Brannigan

Data Scientist & Polars Contributor

रोलिंग आँकड़े क्यों?

बिजली की कीमतों का लाइन प्लॉट

Polars के साथ Data Transformation

रोलिंग आँकड़े क्यों?

रोलिंग आँकड़ों के साथ बिजली की कीमतों का लाइन प्लॉट

Polars के साथ Data Transformation

कॉलम पर रोलिंग mean

prices.with_columns(

)
Polars के साथ Data Transformation

कॉलम पर रोलिंग mean

prices.with_columns(
    pl.col("price").rolling_mean(            )
)
Polars के साथ Data Transformation

कॉलम पर रोलिंग mean

prices.with_columns(
    pl.col("price").rolling_mean(window_size=3)
)
Polars के साथ Data Transformation

कॉलम पर रोलिंग mean

prices.with_columns(
    pl.col("price").rolling_mean(window_size=3).alias("smoothed")
)
Polars के साथ Data Transformation

कॉलम पर रोलिंग mean

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 के साथ Data Transformation

कॉलम पर रोलिंग mean

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 के साथ Data Transformation

विंडो को center करना

prices.with_columns(
    pl.col("price").rolling_mean(window_size=3,            )
)
Polars के साथ Data Transformation

विंडो को center करना

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 के साथ Data Transformation

अन्य रोलिंग expressions

  • .rolling_sum() - रोलिंग कुल
  • .rolling_std() - रोलिंग standard deviation
  • .rolling_max() / .rolling_min()
Polars के साथ Data Transformation

DataFrame पर रोलिंग

prices.rolling(                                )


Polars के साथ Data Transformation

DataFrame पर रोलिंग

prices.rolling(index_column="time",            )


Polars के साथ Data Transformation

DataFrame पर रोलिंग

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


Polars के साथ Data Transformation

DataFrame पर रोलिंग

prices.rolling(index_column="time", period="3h").agg(
    pl.all().mean()
)
Polars के साथ Data Transformation

DataFrame पर रोलिंग

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 के साथ Data Transformation

संचयी आँकड़े क्यों?

सोलर पावर की टाइम सीरीज़ चार्ट

  • कार्य: cumulative मान निकालें
Polars के साथ Data Transformation

संचयी आँकड़े क्यों?

सोलर पावर की टाइम सीरीज़ चार्ट (cumulative max के साथ)

Polars के साथ Data Transformation

संचयी आँकड़े

prices.with_columns(
    pl.col("solar")
)
Polars के साथ Data Transformation

संचयी आँकड़े

prices.with_columns(
    pl.col("solar").cum_max()
)
Polars के साथ Data Transformation

संचयी आँकड़े

prices.with_columns(
    pl.col("solar").cum_max().alias("cumulative_solar")
)
Polars के साथ Data Transformation

संचयी आँकड़े

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 के साथ Data Transformation

रनिंग टोटल के लिए cumulative sum

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 के साथ Data Transformation

अभ्यास करते हैं!

Polars के साथ Data Transformation

Preparing Video For Download...