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

Скопируйте и вставьте решение 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
Мобильная версия