Ввод:
Код: Выделить всё
import polars as pl
df = pl.DataFrame({
"a": [1,15,None,20,None]
})
Код: Выделить всё
expected = pl.from_repr("""
┌──────┬──────┐
│ a ┆ b │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞══════╪══════╡
│ 1 ┆ 0 │
│ 15 ┆ 14 │ # b = 15 - 1
│ null ┆ null │
│ 20 ┆ 5 │ # b = 20 - 15
│ null ┆ null │
└──────┴──────┘
""")
- Если значение «A» равно нулю, то значение B (выходной столбец) также равно нулю.
- Если «A» имеет какое-то значение, извлеките последнее ненулевое значение в «A», а затем вычтите текущее значение в «A» из предыдущего ненулевого значения
- Как выбрать последнее ненулевое значение из одного столбца, а также значение из другого столбца в той же строке в Polars?
Что я хотел бы сделать заключается не в агрегировании всего столбца, а просто в вычитании текущего значения из предыдущего ненулевого значения.
Я также пытался использовать прокрутку:
Код: Выделить всё
df = df.with_row_index().rolling(
index_column = 'index',
period = '???i').agg(pl.col("A").last())
Кто-нибудь знает, как это сделать?
Спасибо!>
Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-polars
Мобильная версия