您可以使用when -> then -> otherwise
表达式和arr
命名空间。其中包括用于列表的实用程序。它们被记录在案。
这是您的用例的示例:
df = pl.DataFrame({
"cars": [[1,2,3], [2,3],[4],[]]
})
df.select([
pl.col("cars").arr.first().alias("cars_first"),
pl.when(pl.col("cars").arr.first() == 2)
.then(1)
.when(pl.col("cars").arr.contains(2))
.then(2)
.otherwise(3).alias("cars_literal")
])
输出:
shape: (4, 2)
┌────────────┬──────────────┐
│ cars_first ┆ cars_literal │
│ --- ┆ --- │
│ i64 ┆ i32 │
╞════════════╪══════════════╡
│ 1 ┆ 2 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
│ 2 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
│ 4 ┆ 3 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
│ null ┆ 3 │
└────────────┴──────────────┘