有没有一种方法可以在 Polars 列内的列表中生成项目组合,而无需为每行使用.map_elements()
+ itertools?
这是我当前的解决方案:
import polars as pl
import itertools
(pl.DataFrame({'col': [['a', 'b', 'c']]})
.with_columns(pl.col('col')
.map_elements(lambda list_o_things: [sorted((thing_1, thing_2))
for thing_1, thing_2
in itertools.combinations(list_o_things, 2)])
)
)
返回这个:
[['a', 'b'], ['a', 'c'], ['b', 'c']]
分解嵌套结构,与其自身进行交叉连接,过滤掉冗余条目,连接到列表,并内爆到嵌套列表。