You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Polars 0.18.0后如何按列分组生成唯一值列表列?

解决Polars 0.18.0+中按类型生成唯一宝可梦名称列表的问题

在Polars 0.18.0版本后,原用于聚合为列表的.list()方法已被重构为.implode(),你只需将原代码中的.list()替换为.implode()即可复现原有逻辑,同时确保操作顺序匹配分组内去重再聚合的需求:

正确写法

df.with_columns(lst_of_pokemon = pl.col('name').unique().implode().over('Type 1'))

逻辑说明

  • .over('Type 1') 指定按「Type 1」列分组的窗口范围
  • .unique() 在每个窗口(即单个宝可梦类型组)内对「name」列去重
  • .implode() 将窗口内去重后的名称聚合为列表

备选写法

如果需要先聚合组内所有名称再去重,也可以使用列表的去重方法:

df.with_columns(lst_of_pokemon = pl.col('name').implode().over('Type 1').list.unique())

这种写法会先将组内所有名称聚合成列表,再对列表去重,最终结果与前者一致。

内容的提问来源于stack exchange,提问作者Thomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 22:30:43