Я хочу добавить новый столбец в фрейм данных, используя pl.when.then.otherwise, но меня смущает, когда новый столбец «наследует» тип существующего, а когда нет.
Пример фрейма данных:
Код: Выделить всё
import polars as pl
df = pl.DataFrame({"a": ["x", "y"], "b": [1, 2]}, schema={"a": pl.String, "b": pl.String})
df
Out:
┌─────┬─────┐
│ a ┆ b │
│ --- ┆ --- │
│ str ┆ u8 │
╞═════╪═════╡
│ x ┆ 1 │
│ y ┆ 2 │
└─────┴─────┘
Код: Выделить всё
df.with_columns(
pl.when(pl.col("a") == "x")
.then(pl.col("b"))
.otherwise(5)
)
Out:
┌─────┬─────┐
│ a ┆ b │
│ --- ┆ --- │
│ str ┆ u8 │
╞═════╪═════╡
│ x ┆ 1 │
│ y ┆ 5 │
└─────┴─────┘
Код: Выделить всё
df.with_columns(
pl.when(pl.col("a") == "x")
.then(pl.col("b"))
.when(pl.col("a") == "y")
.then(0)
.otherwise(5)
)
Out:
┌─────┬─────┐
│ a ┆ b │
│ --- ┆ --- │
│ str ┆ i32 │ #
Подробнее здесь: [url]https://stackoverflow.com/questions/76457723/how-do-new-columns-in-polars-get-their-types-when-using-when-then[/url]