我有以下数据框:
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列是‘Life’的每一行,C列应该具有从该行到B列是‘Death’的A列的值范围内的最大值.如果B栏不是‘Life’,则C栏应设置为‘None’
最终结果应该如下所示:
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 │
└──────────┴──────────┴──────────┘
我如何在Python中使用Polars来实现这一点?如有任何帮助或建议,我们将不胜感激!