Python-Polars: продукт списка выраженийPython

Программы на Python
Ответить
Anonymous
 Python-Polars: продукт списка выражений

Сообщение Anonymous »

В Python-Polars легко вычислить сумму всех списков в массиве с помощью Polars.Expr.list.sum. Сумму смотрите в примере ниже:

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

df = pl.DataFrame({"values": [[[1]], [[2, 3], [5,6]]]})

df.with_columns(
sum=pl.concat_list(pl.col("values")).list.eval(
pl.element().list.sum()))

shape: (2, 2)
┌──────────────────┬───────────┐
│ values           ┆ sum       │
│ ---              ┆ ---       │
│ list[list[i64]]  ┆ list[i64] │
╞══════════════════╪═══════════╡
│ [[1]]            ┆ [1]       │
│ [[2, 3], [5, 6]] ┆ [5, 11]   │
└──────────────────┴───────────┘

Я пытаюсь определить одну и ту же логику для продукта и подразделения. Так как его нет в текущей версии Поларса (1.19). Для этого я использую pl.reduce, но, похоже, он работает не так, как ожидалось:

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

df.with_columns(
sum=pl.concat_list(pl.col("values")).list.eval(
pl.reduce(lambda e1, e2: e1*e2,pl.element())))

shape: (2, 2)
┌──────────────────┬──────────────────┐
│ values           ┆ sum              │
│ ---              ┆ ---              │
│ list[list[i64]]  ┆ list[list[i64]]  │
╞══════════════════╪══════════════════╡
│ [[1]]            ┆ [[1]]            │
│ [[2, 3], [5, 6]] ┆ [[2, 3], [5, 6]] │
└──────────────────┴──────────────────┘

Можете ли вы предложить, как реализовать вышеизложенное, используя контекст одного выражения?

Подробнее здесь: https://stackoverflow.com/questions/793 ... st-product
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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