Tarihleri ayrıştırma ve işleme

Polars ile Veri Dönüşümü

Liam Brannigan

Data Scientist & Polars Contributor

Zaman serisi verisi

Piyasa fiyatları için zaman serisi

Polars ile Veri Dönüşümü

Zaman serisi verisi

Satışlar için zaman serisi

Polars ile Veri Dönüşümü

Zaman serisi verisi

Yayınlar için zaman serisi

Polars ile Veri Dönüşümü

Zaman serisi verisi

Sayı için zaman serisi

Polars ile Veri Dönüşümü

Elektrik fiyatları veri seti

shape: (24, 3)
| time             | price | solar |
| ---              | ---   | ---   |
| str              | f64   | f64   |
|------------------|-------|-------|
| 05/07/2025 00:00 | 34.2  | 0.0   |
| ...              | ...   | ...   |
| 05/07/2025 12:00 | 0.0   | 462.0 |
  • time - saatlik değerler
  • price - MWh başına £
  • solar - metrekare başına W
  • solar > 400 = sıcak yaz günü
Polars ile Veri Dönüşümü

Fiyat ve güneş ilişkisi

Elektrik fiyatlarının zaman serisi

Polars ile Veri Dönüşümü

Fiyat ve güneş ilişkisi

Elektrik fiyatlarının zaman serisi

Polars ile Veri Dönüşümü

Polars'ta datetime türleri

  • Date - takvim tarihi - 2000-01-01
  • Datetime - tarih ve saat - 2000-01-01 12:00:00
  • Time - günün saati - 12:00:00
  • Duration - süre - 3 hours
Polars ile Veri Dönüşümü

Otomatik datetime ayrıştırma

pl.read_csv(
  "electricity_prices",

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

Otomatik datetime ayrıştırma

pl.read_csv(
  "electricity_prices",
  try_parse_dates=True
)
  • biçim: YYYY-MM-DD
  • ör. 2025-07-05
  • ör. 2025-07-05 12:00:00
Polars ile Veri Dönüşümü

Verimiz manuel ayrıştırma gerektiriyor

| time             | price | solar |
| ---              | ---   | ---   |
| str              | f64   | f64   |
|------------------|-------|-------|
| 05/07/2025 00:00 | 34.2  | 0.0   |
| 05/07/2025 01:00 | 28.7  | 0.0   |
  • biçim: DD/MM/YYYY HH:MM
  • Polars tarafından otomatik algılanmaz
Polars ile Veri Dönüşümü

strptime ile ayrıştırma

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

strptime ile ayrıştırma

prices.with_columns(
    pl.col("time").str.strptime(pl.Datetime,                 )
)
Polars ile Veri Dönüşümü

strptime ile ayrıştırma

prices.with_columns(
    pl.col("time").str.strptime(pl.Datetime, "%d/%m/%Y      ")
)
Polars ile Veri Dönüşümü

strptime ile ayrıştırma

prices.with_columns(
    pl.col("time").str.strptime(pl.Datetime, "%d/%m/%Y %H:%M")
)
Polars ile Veri Dönüşümü

strptime ile ayrıştırma

prices.with_columns(
    pl.col("time").str.strptime(pl.Datetime, "%d/%m/%Y %H:%M")
)
| time                | price | solar |
| ---                 | ---   | ---   |
| datetime[us]        | 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 02:00:00 | 27.5  | 0.0   |
Polars ile Veri Dönüşümü

Datetime bileşenlerini çıkarma

Zaman serisi veri tablosu

Polars ile Veri Dönüşümü

Datetime bileşenlerini çıkarma

Bir satırda tarih vurgulanmış zaman serisi veri tablosu

Polars ile Veri Dönüşümü

Datetime bileşenlerini çıkarma

Bir satırda saat vurgulanmış zaman serisi veri tablosu

Polars ile Veri Dönüşümü

Datetime bileşenlerini çıkarma

Bir satırda saatlik dilim vurgulanmış zaman serisi veri tablosu

Polars ile Veri Dönüşümü

Tarihi çıkarma

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

Tarihi çıkarma

prices.with_columns(
    pl.col("time").dt.date().alias("date")
)
Polars ile Veri Dönüşümü

Tarihi çıkarma

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

Saati çıkarma

prices.with_columns(
    pl.col("time").dt.time().alias("time_of_day")
)
Polars ile Veri Dönüşümü

Saati çıkarma

prices.with_columns(
    pl.col("time").dt.time().alias("time_of_day")
)
| time                | price | solar | time_of_day |
| ---                 | ---   | ---   | ---         |
| datetime[us]        | f64   | f64   | time        |
|---------------------|-------|-------|-------------|
| 2025-07-05 00:00:00 | 34.2  | 0.0   | 00:00:00    |
| 2025-07-05 01:00:00 | 28.7  | 0.0   | 01:00:00    |
| 2025-07-05 02:00:00 | 27.5  | 0.0   | 02:00:00    |
Polars ile Veri Dönüşümü

Saat dilimini çıkarma

prices.with_columns(
    pl.col("time").dt.hour().alias("hour")
)
Polars ile Veri Dönüşümü

Saat dilimini çıkarma

prices.with_columns(
    pl.col("time").dt.hour().alias("hour")
)
| time                | price | solar | hour |
| ---                 | ---   | ---   | ---  |
| datetime[µs]        | f64   | f64   | i8   |
|---------------------|-------|-------|------|
| 2025-07-05 00:00:00 | 34.2  | 0.0   | 0    |
| 2025-07-05 01:00:00 | 28.7  | 0.0   | 1    |
| 2025-07-05 12:00:00 | 0.0   | 462.0 | 12   |
Polars ile Veri Dönüşümü

Diğer datetime bileşenleri

  • .dt.year() - yılı çıkarır
  • .dt.month() - ayı çıkarır (1-12)
  • .dt.day() - ayın gününü çıkarır
  • .dt.minute() - dakikayı çıkarır
  • ...
1 https://docs.pola.rs/api/python/dev/reference/expressions/temporal.html
Polars ile Veri Dönüşümü

Datetime ayarlama

  • .dt.offset_by() - datetime'ları ayarlar
  • "1h" - 1 saat ileri
  • "-2d" - 2 gün geri
Polars ile Veri Dönüşümü

Datetime ayarlama

  • .dt.offset_by() - datetime'ları ayarlar
  • "1h" - 1 saat ileri
  • "-2d" - 2 gün geri
1 https://docs.pola.rs/api/python/stable/reference/expressions/api/polars.Expr.dt.offset_by.html
Polars ile Veri Dönüşümü

Zaman penceresi sonu ekleme

prices.with_columns(
    pl.col("time").dt.offset_by("1h")
)
Polars ile Veri Dönüşümü

Zaman penceresi sonu ekleme

prices.with_columns(
    pl.col("time").dt.offset_by("1h").alias("time_end")
)
Polars ile Veri Dönüşümü

Zaman penceresi sonu ekleme

prices.with_columns(
    pl.col("time").dt.offset_by("1h").alias("time_end")
)
| time                | price | solar | time_end            |
| ---                 | ---   | ---   | ---                 |
| datetime[µs]        | f64   | f64   | datetime[µs]        |
|---------------------|-------|-------|---------------------|
| 2025-07-05 00:00:00 | 34.2  | 0.0   | 2025-07-05 01:00:00 |
| 2025-07-05 01:00:00 | 28.7  | 0.0   | 2025-07-05 02:00:00 |
| 2025-07-05 02:00:00 | 27.5  | 0.0   | 2025-07-05 03:00:00 |
Polars ile Veri Dönüşümü

Ayo berlatih!

Polars ile Veri Dönüşümü

Preparing Video For Download...