import polars as pl
dates = ["2024 Jan", "2024 Feb"]
DateEnum = pl.Enum(dates)
date_table = pl.DataFrame(
{"date": pl.Series(raw_dates, dtype=DateEnum)}
)
date_table.explode("date") # fails
{
"date": pl.Series(raw_dates, dtype=plDateEnum).cast(dtype=str),
"index": pl.Series(raw_dates, dtype=plDateEnum).cast(dtype=int),
}
)
date_table # fails
I hoped to see a dataframe like:
from typing import Enum
pyDateEnum = Enum("Dates", raw_dates)
date_table = pl.DataFrame({
"date": pl.Series("dates", [x.name for x in pyDateEnum], dtype=str),
"index": pl.Series("indices", [x.value - 1 for x in pyDateEnum], dtype=int)
})
date_table
shape: (2, 2)
┌──────────┬───────┐
│ date ┆ index │
│ --- ┆ --- │
│ str ┆ i64 │
╞══════════╪═══════╡
│ 2024 Jan ┆ 0 │
│ 2024 Feb ┆ 1 │
└──────────┴───────┘
How do I go about doing this using Polars, without resorting to Python enums?