Рекурсия Python PolarsPython

Программы на Python
Ответить
Anonymous
 Рекурсия Python Polars

Сообщение Anonymous »

Я уже некоторое время использую Polars, но это часто заставляет меня переходить от фреймов данных Polars к собственным вычислениям Python. Я потратил немало времени на поиск решений, которые (пытаются) использовать сдвиг(), прокатку(), group_by_dynamic() и т. д., но ни одно из них не увенчалось успехом.
Задача< /strong>
Выполнить расчет, зависящий от результата предыдущего расчета, который находится в том же столбце.
Пример в Excel
В Excel это самая простая формула... если «индекс» равен нулю, я хочу вернуть «A», в противном случае я хочу вернуть результат из ячейки выше.
| |A|B|C|
|-|-|-|-|
|1|Индекс|Результат|Формула для столбца «Результат»|
|2|0|A| =IF(A2=0;"A";B1)
|3|1|A|=IF(A3=0;"A";B2)
Где находится рекурсия
В столбце «B» формула ссылается на ранее вычисленные значения в том же столбце «B».
Изображение

Скопируйте и вставьте решение Excel в Polars

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

# Import Polars module.
import polars as pl

# Create the data.
data = {'Index': [0, 1]}

# Create the DataFrame.
df = pl.from_dict(data)

# Add a column to the DataFrame.
df = df.with_columns(

# Tries to reproduce the Excel formula.
Result = pl.when(
pl.col('Index') == 0
).then(
pl.lit('A')
).otherwise(
pl.col('Result')
)

)
Проблема
В методе with_columns() нельзя ссылаться на столбец «Результат», поскольку он еще не существует в DataFrame . Если мы попытаемся это сделать, мы получим ColumnNotFoundError:
Изображение

Вопрос
Есть идеи, как можно выполнить такую ​​простую задачу на Polars?
Спасибо,

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

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

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

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

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

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