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

Polars DataFrame的partition_by是否保留组内行顺序?

Polars.DataFrame.partition_by 是否保留组内行顺序?

目前在Polars稳定版本中,partition_by 操作会保留每个组内的行顺序,与原DataFrame中行的出现顺序完全一致。

补充说明:

  • 尽管官方文档未明确标注这一行为,但从partition_by的实现逻辑来看,它仅负责将原数据集按分组键拆分为多个子DataFrame,不会对组内数据进行额外排序或重排操作。
  • 你提供的测试代码也验证了这一点:分组后每个子DataFrame的a列(对应原数据的顺序索引)始终保持有序,说明组内行的相对顺序完全继承自原数据。
  • 对比group_by:你提到group_by即使设置maintain_order=False仍保留组内顺序,这是因为该参数控制的是组之间的输出顺序,而非组内元素的顺序。partition_by的行为逻辑与此一致,仅做数据拆分,不干预组内顺序。

测试代码:

import polars as pl
import numpy as np

df = pl.DataFrame({ 
    "a" : np.arange(100000000), 
    "b": np.random.randint(0,50,100000000)
})
all_dfs = df.partition_by("b", as_dict=True)
for key, df in all_dfs.items():
    assert df["a"].is_sorted()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 12:04:52