polars.Expr.dt.truncate#
- Expr.dt.truncate(every: str | timedelta, offset: str | timedelta | None = None) Expr [source]#
Divide the date/datetime range into buckets.
Each date/datetime is mapped to the start of its bucket.
- Parameters:
- every
Every interval start and period length
- offset
Offset the window
- Returns:
- Date/Datetime series
Notes
The
every
andoffset
argument are created with the the following string language:1ns # 1 nanosecond
1us # 1 microsecond
1ms # 1 millisecond
1s # 1 second
1m # 1 minute
1h # 1 hour
1d # 1 day
1w # 1 calendar week
1mo # 1 calendar month
1y # 1 calendar year
These strings can be combined:
3d12h4m25s # 3 days, 12 hours, 4 minutes, and 25 seconds
Examples
>>> from datetime import timedelta, datetime >>> start = datetime(2001, 1, 1) >>> stop = datetime(2001, 1, 2) >>> df = pl.date_range( ... start, stop, timedelta(minutes=225), name="dates" ... ).to_frame() >>> df shape: (7, 1) ┌─────────────────────┐ │ dates │ │ --- │ │ datetime[μs] │ ╞═════════════════════╡ │ 2001-01-01 00:00:00 │ │ 2001-01-01 03:45:00 │ │ 2001-01-01 07:30:00 │ │ 2001-01-01 11:15:00 │ │ 2001-01-01 15:00:00 │ │ 2001-01-01 18:45:00 │ │ 2001-01-01 22:30:00 │ └─────────────────────┘ >>> df.select(pl.col("dates").dt.truncate("1h")) shape: (7, 1) ┌─────────────────────┐ │ dates │ │ --- │ │ datetime[μs] │ ╞═════════════════════╡ │ 2001-01-01 00:00:00 │ │ 2001-01-01 03:00:00 │ │ 2001-01-01 07:00:00 │ │ 2001-01-01 11:00:00 │ │ 2001-01-01 15:00:00 │ │ 2001-01-01 18:00:00 │ │ 2001-01-01 22:00:00 │ └─────────────────────┘ >>> df.select(pl.col("dates").dt.truncate("1h")).frame_equal( ... df.select(pl.col("dates").dt.truncate(timedelta(hours=1))) ... ) True
>>> start = datetime(2001, 1, 1) >>> stop = datetime(2001, 1, 1, 1) >>> df = pl.date_range(start, stop, "10m", name="dates").to_frame() >>> df.select(["dates", pl.col("dates").dt.truncate("30m").alias("truncate")]) shape: (7, 2) ┌─────────────────────┬─────────────────────┐ │ dates ┆ truncate │ │ --- ┆ --- │ │ datetime[μs] ┆ datetime[μs] │ ╞═════════════════════╪═════════════════════╡ │ 2001-01-01 00:00:00 ┆ 2001-01-01 00:00:00 │ │ 2001-01-01 00:10:00 ┆ 2001-01-01 00:00:00 │ │ 2001-01-01 00:20:00 ┆ 2001-01-01 00:00:00 │ │ 2001-01-01 00:30:00 ┆ 2001-01-01 00:30:00 │ │ 2001-01-01 00:40:00 ┆ 2001-01-01 00:30:00 │ │ 2001-01-01 00:50:00 ┆ 2001-01-01 00:30:00 │ │ 2001-01-01 01:00:00 ┆ 2001-01-01 01:00:00 │ └─────────────────────┴─────────────────────┘