There is a polars dataframe which consists of 3 fields listed below. df = pl.from_repr(""" ┌─────────┬─────────────────────┬─────────────┐ │ user_id ┆ date ┆ part_of_day │ │ --- ┆ --- ┆ --- │ │ i64 ┆ datetime[ns] ┆ cat │ ╞═════════╪═════════════════════╪═════════════╡ │ 173367 ┆ 2021-08-03 00:00:00 ┆ day │ │ 132702 ┆ 2021-10-28 00:00:00 ┆ evening │ │ 100853 ┆ 2021-07-29 00:00:00 ┆ night │ │ 305810 ┆ 2021-08-24 00:00:00 ┆ day │ │ 305239 ┆ 2021-08-13 00:00:00 ┆ day │ └─────────┴─────────────────────┴─────────────┘ """) My task is to calculate the number of unique users for each week and time of day. Polars provides three different types of grouping options:: group_by: This option allows for simple grouping by columns or expressions. group_by_dynamic: This option only accepts a datetime column as the grouper. rolling: This option also only accepts a datetime column as the grouper. It seems like group_by_dynamic would be the best fit for this specific task. However, it does not allow for other columns to be used as the grouper. Therefore, my question is how can I accomplish this task using Polars? Additionally, I have included some code that I would have used to solve this problem using Pandas. ( df .cast({"part_of_day": pl.String}) .to_pandas() .groupby([pd.Grouper(key="date", freq="1W"), "part_of_day"]) .user_id .nunique() ) Desired result: date part_of_day 2021-08-01 night 1 2021-08-08 day 1 2021-08-15 day 1 2021-08-29 day 1 2021-10-31 evening 1 Name: user_id, dtype: int64 Continue reading...