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
我希望看到像这样的数据框:
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 │
└──────────┴───────┘
如何使用 Polars 来实现这一点,而不使用 Python 枚举?
我不确定是否有更本土化的方式来做到这一点,但你总是可以
cast
: