Столкнувшись с проблемой «Когда Тогда» в Polars, необходимо динамически генерировать «Когда Тогда»Python

Программы на Python
Anonymous
Столкнувшись с проблемой «Когда Тогда» в Polars, необходимо динамически генерировать «Когда Тогда»

Сообщение Anonymous »

Я пытаюсь добиться выражения ниже полярного:

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

pl.when(pl.col(a).contains("some value")).then(pl.concat_list("ArayColumn"),[A])
.when(pl.col(a).contains("some value")).then(pl.concat_list("ArayColumn"),[B])
.when(pl.col(a).contains("some value")).then(pl.concat_list("ArayColumn"),[C])
.otherwise("Z is Big").alias("Bigger Value")
Но я бы хотел сгенерировать эти выражения динамическими средствами:

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

exprs = []
for i,value on conditions:
exprs.append(pl.when(i).then(value))

exprs.otherwise(defaultValue).alias("Bigger Value")
я хочу применить выражения к фрейму данных, как показано ниже:
dataFrame.with_columns(exprs).
Итак, я хочу, чтобы для каждой строки сначала было указано «когда», затем «когда», затем…
Я должен оценивать каждое «когда». Затем условие и объединение всех
Мои окончательные значения могут содержать [A, B, C].
Проверенные подходы:
  • Цикл For и применяя один за другим, но если dataFrame имеет огромные данные, его взрыв.
  • Цепочка выражений, но в противном случае поляры принимают None по умолчанию для всех условий, которые я сохранял, и замедляют их [несколько мс]
Можете ли вы предложить мне другой подход? Мне нужно сгенерировать выражение, а позже я применю его к dataFrame.

Подробнее здесь: https://stackoverflow.com/questions/788 ... dynamicall

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