Найти максимальное значение в диапазоне между двумя маркерами данного столбца в Polars?Python

Программы на Python
Ответить
Anonymous
 Найти максимальное значение в диапазоне между двумя маркерами данного столбца в Polars?

Сообщение Anonymous »

У меня есть следующий фрейм данных:

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

import polars as pl

df = pl.DataFrame({
"Column A": [2, 3, 1, 4, 1, 3, 3, 2, 1, 0],
"Column B": [
"Life", None, None, None, "Death", None,
"Life", None, None, "Death"
]
})

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

shape: (10, 2)
┌──────────┬──────────┐
│ Column A ┆ Column B │
│ ---      ┆ ---      │
│ i64      ┆ str      │
╞══════════╪══════════╡
│ 2        ┆ Life     │
│ 3        ┆ null     │
│ 1        ┆ null     │
│ 4        ┆ null     │
│ 1        ┆ Death    │
│ 3        ┆ null     │
│ 3        ┆ Life     │
│ 2        ┆ null     │
│ 1        ┆ null     │
│ 0        ┆ Death    │
└──────────┴──────────┘
Я хочу создать новый столбец, назовем его Столбец C. Для каждой строки, где столбец B — «Жизнь», столбец C должен иметь максимальное значение в диапазоне значений в столбце A от этой строки до строки, где столбец B — «Смерть». В тех случаях, когда в столбце B не указано значение «Жизнь», в столбце C должно быть установлено значение «Нет».
Конечный результат должен выглядеть следующим образом:

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

shape: (10, 3)
┌──────────┬──────────┬──────────┐
│ Column A ┆ Column B ┆ Column C │
│ ---      ┆ ---      ┆ ---      │
│ i64      ┆ str      ┆ f64      │
╞══════════╪══════════╪══════════╡
│ 2        ┆ Life     ┆ 4.0      │
│ 3        ┆ null     ┆ null     │
│ 1        ┆ null     ┆ null     │
│ 4        ┆ null     ┆ null     │
│ 1        ┆ Death    ┆ null     │
│ 3        ┆ null     ┆ null     │
│ 3        ┆ Life     ┆ 3.0      │
│ 2        ┆ null     ┆ null     │
│ 1        ┆ null     ┆ null     │
│ 0        ┆ Death    ┆ null     │
└──────────┴──────────┴──────────┘
Как этого добиться с помощью Polars в Python? Любая помощь или предложения будут оценены по достоинству!


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

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

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

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

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

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