Поляры изменяют многие столбцы на основе значения в другом столбцеPython

Программы на Python
Anonymous
 Поляры изменяют многие столбцы на основе значения в другом столбце

Сообщение Anonymous »

Предположим, у меня есть DataFrame, который выглядит следующим образом:

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

import polars as pl

df = pl.DataFrame({
"id": [1, 2, 3, 4, 5],
"feature_a": np.random.randint(0, 3, 5),
"feature_b": np.random.randint(0, 3, 5),
"label": [1, 0, 0, 1, 1],
})

┌─────┬───────────┬───────────┬───────┐
│ id  ┆ feature_a ┆ feature_b ┆ label │
│ --- ┆ ---       ┆ ---       ┆ ---   │
│ i64 ┆ i64       ┆ i64       ┆ i64   │
╞═════╪═══════════╪═══════════╪═══════╡
│ 1   ┆ 2         ┆ 0         ┆ 1     │
│ 2   ┆ 1         ┆ 1         ┆ 0     │
│ 3   ┆ 2         ┆ 2         ┆ 0     │
│ 4   ┆ 1         ┆ 0         ┆ 1     │
│ 5   ┆ 0         ┆ 0         ┆ 1     │
└─────┴───────────┴───────────┴───────┘
Я хочу изменить все столбцы функций на основе значения в столбце метки, создав новый DataFrame.

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

┌─────┬───────────┬───────────┐
│ id  ┆ feature_a ┆ feature_b │
│ --- ┆ ---       ┆ ---       │
│ i64 ┆ i64       ┆ i64       │
╞═════╪═══════════╪═══════════╡
│ 1   ┆ 1         ┆ 1         │
│ 2   ┆ 0         ┆ 0         │
│ 3   ┆ 0         ┆ 0         │
│ 4   ┆ 1         ┆ 1         │
│ 5   ┆ 1         ┆ 1         │
└─────┴───────────┴───────────┘
Я знаю, что могу выбрать все столбцы функций, используя регулярное выражение в селекторе столбцов

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

pl.col(r"^feature_.*$")
И я могу использовать выражение «когда/то» для оценки столбца метки

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

pl.when(pl.col("label") == 1).then(1).otherwise(0)
Но я не могу объединить эти два значения, чтобы изменить все выбранные столбцы одним махом. Кажется так просто, чего мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/759 ... her-column

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