Поляры: «разбить» ряд с перечисляемым значением на два столбца с индексом перечисления и значением перечисления.Python

Программы на Python
Anonymous
Поляры: «разбить» ряд с перечисляемым значением на два столбца с индексом перечисления и значением перечисления.

Сообщение Anonymous »

Код: Выделить всё

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?


Подробнее здесь: https://stackoverflow.com/questions/786 ... x-and-enum

Вернуться в «Python»