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

Polars中df.unique()每次执行结果顺序不同是否为有意设计?

Polars中unique()结果顺序不稳定的原因

这种顺序不稳定是Polars的有意设计,核心原因围绕性能优化展开:

  • 哈希表实现的特性:unique()默认基于哈希表来快速去重,而哈希表的遍历顺序本身不固定,取决于元素哈希值的分布以及底层存储结构,因此每次返回的去重结果顺序会存在差异。
  • 优先保障大数据处理性能:Polars的定位是高效处理大规模数据集,强制固定顺序需要额外执行排序操作,会显著增加计算开销。默认不保证顺序,是为了避免这种不必要的性能损耗,让去重操作在大数据场景下保持最优速度。
  • 可按需指定固定顺序:如果业务场景需要稳定的结果顺序,可以通过maintain_order=True参数实现,该参数会保留重复项中首次出现的记录顺序,行为与pandas的df.drop_duplicates(keep='first')一致。

示例代码:

import polars as pl

df = pl.DataFrame(
    {
        "X": [4, 2, 3, 4],
        "Y": ["p", "p", "p", "p"],
        "Z": ["b", "b", "b", "b"],
    }
)

# 固定顺序的去重结果
print(df.unique(maintain_order=True))

输出结果稳定为:

X   Y   Z
i64 str str
4   "p" "b"
2   "p" "b"
3   "p" "b"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 16:24:55