समय अवधि के आधार पर फ़िल्टरिंग और एग्रीगेशन

Polars के साथ Data Transformation

Liam Brannigan

Data Scientist & Polars Contributor

विशिष्ट कीमतें ढूँढना

टाइम सीरीज़ डेटा की तालिका

Polars के साथ Data Transformation

विशिष्ट कीमतें ढूँढना

1 पंक्ति हाइलाइट वाली टाइम सीरीज़ तालिका

Polars के साथ Data Transformation

विशिष्ट कीमतें ढूँढना

3 पंक्तियाँ हाइलाइट वाली टाइम सीरीज़ तालिका

Polars के साथ Data Transformation

pl.datetime के साथ फ़िल्टरिंग

prices.filter(

)

$$

$$

$$

$$

  • कार्य: 5 जुलाई को दोपहर 12 बजे की कीमतें खोजें
Polars के साथ Data Transformation

pl.datetime के साथ फ़िल्टरिंग

prices.filter(
    pl.col("time") == 
)
Polars के साथ Data Transformation

pl.datetime के साथ फ़िल्टरिंग

prices.filter(
    pl.col("time") == pl.datetime(                                  )
)
Polars के साथ Data Transformation

pl.datetime के साथ फ़िल्टरिंग

prices.filter(
    pl.col("time") == pl.datetime(year=2025, month=7, day=5, hour=12)
)
| time                | price | solar |
| ---                 | ---   | ---   |
| datetime[µs]        | f64   | f64   |
|---------------------|-------|-------|
| 2025-07-05 12:00:00 | 0.0   | 462.0 |
Polars के साथ Data Transformation

pl.date के साथ तारीख से फ़िल्टरिंग

prices.filter(
    pl.col("time").dt.date() == 
)
Polars के साथ Data Transformation

pl.date के साथ तारीख से फ़िल्टरिंग

prices.filter(
    pl.col("time").dt.date() == pl.date(year=2025, month=7, day=5)
)
Polars के साथ Data Transformation

pl.date के साथ तारीख से फ़िल्टरिंग

prices.filter(
    pl.col("time").dt.date() == pl.date(year=2025, month=7, day=5)
)
| time                | price | solar |
| ---                 | ---   | ---   |
| datetime[µs]        | f64   | f64   |
|---------------------|-------|-------|
| 2025-07-05 00:00:00 | 34.2  | 0.0   |
| 2025-07-05 01:00:00 | 28.7  | 0.0   |
| ...                 | ...   | ...   |
| 2025-07-05 23:00:00 | 72.3  | 0.0   |
Polars के साथ Data Transformation

Datetime रेंज को फ़िल्टर करना

prices.filter(
    pl.col("time").is_between(


    )
)
Polars के साथ Data Transformation

Datetime रेंज को फ़िल्टर करना

prices.filter(
    pl.col("time").is_between(
        pl.datetime(2025, 7, 5, 8),
        pl.datetime(2025, 7, 5, 18)
    )
)
Polars के साथ Data Transformation

Datetime रेंज को फ़िल्टर करना

prices.filter(
    pl.col("time").is_between(
        pl.datetime(2025, 7, 5, 8),
        pl.datetime(2025, 7, 5, 18)
    )
)
| time                | price | solar |
| ---                 | ---   | ---   |
| datetime[µs]        | f64   | f64   |
|---------------------|-------|-------|
| 2025-07-05 08:00:00 | 1.7   | 180.0 |
| 2025-07-05 09:00:00 | 1.3   | 243.0 |
| ...                 | ...   | ...   |
| 2025-07-05 17:00:00 | 77.8  | 153.0 |
| 2025-07-05 18:00:00 | 87.3  | 119.0 |
Polars के साथ Data Transformation

समय अवधि के हिसाब से एग्रीगेशन

समय विंडो में एग्रीगेट करने हेतु पंक्तियाँ

  • .group_by_dynamic() से डेटा एग्रीगेट करें
Polars के साथ Data Transformation

समय अवधि के हिसाब से एग्रीगेशन

prices.sort("time")


Polars के साथ Data Transformation

समय अवधि के हिसाब से एग्रीगेशन

prices.sort("time").group_by_dynamic("time",          )


Polars के साथ Data Transformation

समय अवधि के हिसाब से एग्रीगेशन

prices.sort("time").group_by_dynamic("time", every="6h")


Polars के साथ Data Transformation

6-घंटे की विंडो से एग्रीगेशन

prices.sort("time").group_by_dynamic("time", every="6h").agg(

)
Polars के साथ Data Transformation

6-घंटे की विंडो से एग्रीगेशन

prices.sort("time").group_by_dynamic("time", every="6h").agg(
    pl.col("price").mean().alias("avg_price")
)
Polars के साथ Data Transformation

6-घंटे की विंडो से एग्रीगेशन

prices.sort("time").group_by_dynamic("time", every="6h").agg(
    pl.col("price").mean().alias("avg_price")
)
| time                | avg_price |
| ---                 | ---       |
| datetime[µs]        | f64       |
|---------------------|-----------|
| 2025-07-05 00:00:00 | 28.4      |
| 2025-07-05 06:00:00 | 15.2      |
| 2025-07-05 12:00:00 | 42.1      |
| 2025-07-05 18:00:00 | 68.7      |
Polars के साथ Data Transformation

दिन के हिसाब से एग्रीगेशन

prices.sort("time").group_by_dynamic("time", every="1d").agg(

pl.col("price").mean().alias("avg_price"), pl.col("solar").mean().alias("avg_solar")
)
Polars के साथ Data Transformation

दिन के हिसाब से एग्रीगेशन

prices.sort("time").group_by_dynamic("time", every="1d").agg(
    pl.col("price").mean().alias("avg_price"),
    pl.col("solar").mean().alias("avg_solar")
)
| time                | avg_price | avg_solar |
| ---                 | ---       | ---       |
| datetime[µs]        | f64       | f64       |
|---------------------|-----------|-----------|
| 2025-07-05 00:00:00 | 36.7      | 147.1     |
| 2025-07-06 00:00:00 | 42.1      | 133.8     |
Polars के साथ Data Transformation

विंडो आकार नियंत्रित करना

  • every - नई विंडो कितनी बार शुरू होती है
  • period - हर विंडो की अवधि
  • डिफ़ॉल्ट रूप से, period = every
Polars के साथ Data Transformation

विंडो आकार नियंत्रित करना

prices.group_by_dynamic("time", every="2h")
Polars के साथ Data Transformation

विंडो आकार नियंत्रित करना

नॉन-ओवरलैपिंग 2-घंटे की विंडो

Polars के साथ Data Transformation

विंडो आकार नियंत्रित करना

prices.group_by_dynamic("time", every="1h", period="2h")
Polars के साथ Data Transformation

विंडो आकार नियंत्रित करना

10 से शुरू होती पहली ओवरलैपिंग विंडो

Polars के साथ Data Transformation

विंडो आकार नियंत्रित करना

11 से शुरू होती दूसरी ओवरलैपिंग विंडो

Polars के साथ Data Transformation

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

Polars के साथ Data Transformation

Preparing Video For Download...