如何获取 Polars 数据框中类型列表的列的唯一元素的(第一次出现)索引?我正在寻找类似于
arg_unique
的东西,但仅适用于 pl.Series
,例如在整个列上执行。我需要它在该列下面的每个列表上工作。
给定数据框
df = pl.DataFrame({
"fruits": [["apple", "banana", "apple", "orange"], ["grape", "apple", "grape"], ["kiwi", "mango", "kiwi"]]
})
我期望输出是
df = pl.DataFrame({
"fruits": [[0, 1, 3], [0, 1], [0, 1]]
})
.list.eval()
方法时,
.list.*
可以用作后备。
df.with_columns(
pl.col("fruits").list.eval(pl.element().arg_unique()).alias("idxs")
)
shape: (3, 2)
┌────────────────────────────────────────┬───────────┐
│ fruits ┆ idxs │
│ --- ┆ --- │
│ list[str] ┆ list[u32] │
╞════════════════════════════════════════╪═══════════╡
│ ["apple", "banana", "apple", "orange"] ┆ [0, 1, 3] │
│ ["grape", "apple", "grape"] ┆ [0, 1] │
│ ["kiwi", "mango", "kiwi"] ┆ [0, 1] │
└────────────────────────────────────────┴───────────┘