polars.Series.dt.truncate#
- Series.dt.truncate(every: str | dt.timedelta, offset: str | dt.timedelta | None = None) Series [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) >>> s = pl.date_range(start, stop, timedelta(minutes=165), name="dates") >>> s shape: (9,) Series: 'dates' [datetime[μs]] [ 2001-01-01 00:00:00 2001-01-01 02:45:00 2001-01-01 05:30:00 2001-01-01 08:15:00 2001-01-01 11:00:00 2001-01-01 13:45:00 2001-01-01 16:30:00 2001-01-01 19:15:00 2001-01-01 22:00:00 ] >>> s.dt.truncate("1h") shape: (9,) Series: 'dates' [datetime[μs]] [ 2001-01-01 00:00:00 2001-01-01 02:00:00 2001-01-01 05:00:00 2001-01-01 08:00:00 2001-01-01 11:00:00 2001-01-01 13:00:00 2001-01-01 16:00:00 2001-01-01 19:00:00 2001-01-01 22:00:00 ] >>> s.dt.truncate("1h").series_equal(s.dt.truncate(timedelta(hours=1))) True
>>> start = datetime(2001, 1, 1) >>> stop = datetime(2001, 1, 1, 1) >>> s = pl.date_range(start, stop, "10m", name="dates") >>> s shape: (7,) Series: 'dates' [datetime[μs]] [ 2001-01-01 00:00:00 2001-01-01 00:10:00 2001-01-01 00:20:00 2001-01-01 00:30:00 2001-01-01 00:40:00 2001-01-01 00:50:00 2001-01-01 01:00:00 ] >>> s.dt.truncate("30m") shape: (7,) Series: 'dates' [datetime[μs]] [ 2001-01-01 00:00:00 2001-01-01 00:00:00 2001-01-01 00:00:00 2001-01-01 00:30:00 2001-01-01 00:30:00 2001-01-01 00:30:00 2001-01-01 01:00:00 ]