Ввод:
Код: Выделить всё
df = pl.DataFrame({
"a": [1,15,None,20,None]
})
Код: Выделить всё
df = pl.DataFrame({
"a": [1,15,None,20,None],
"b": [0,14,None,5,None]
})
A
< tr>
1
15
Нет
< tr>
20
Нет
кому:
A
B
1
0
15
14
Нет
Нет
20
5
Нет
Нет
Итак, что он делает:
- Если значение «A» равно нулю, то значение B (выходной столбец) также равно нулю.
- Если «A» имеет какое-то значение, извлеките последнее ненулевое значение в «A», а затем вычесть текущее значение в «A» из предыдущего Ненулевое значение
Я попробовал следующий вопрос:
Как выбрать последнее ненулевое значение из одного столбца, а также значение из другого столбца в той же строке в Поларах?
Но, к сожалению, это не отвечает оригиналу проблема, поскольку вопрос выполняет агрегацию всего столбца, а затем принимает последнее значение этого столбца.
Я хотел бы не агрегировать весь столбец, а просто чтобы вычесть текущее значение из предыдущего ненулевого значения.
Я также пытался использовать прокрутку:
Код: Выделить всё
df = df.with_row_index().rolling(
index_column = 'index',
period = '???i').agg(pl.col("A").last())
Кто-нибудь знает, как это сделать?
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/792 ... ven-column
Мобильная версия