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

pandas groupby()按分组列返回结果的顺序一致性问询

Pandas groupby 分组顺序问题解答

1. groupby() 是否总是生成与原分组列顺序一致的DataFrame?

不是,这取决于sort参数的设置:

  • 默认情况下(sort=True),groupby会对分组键做升序排序,结果的分组顺序是排序后的顺序,和原数据中分组列的出现顺序无关。
  • 如果设置sort=False,分组结果的顺序会和原数据中分组键首次出现的顺序保持一致。

2. 按id分组后调用first(),结果是否始终与原id列顺序一致?

同样不是,核心逻辑和上述一致:

  • 默认sort=True时,结果的id顺序是升序排列,和原数据里id的出现顺序无关。
  • 当设置sort=False时,结果的id顺序会和原数据中每个id第一次出现的顺序一致(注意是去重后的首次出现顺序,不是原数据所有id行的顺序)。

举个直观的代码例子:

import pandas as pd
df = pd.DataFrame({'id': [3, 1, 2, 1, 3], 'value': [10, 20, 30, 40, 50]})

# 默认sort=True,结果按id升序排列
print(df.groupby('id')['value'].first())
# 输出:
# id
# 1    20
# 2    30
# 3    10
# Name: value, dtype: int64

# 设置sort=False,结果按id首次出现顺序排列
print(df.groupby('id', sort=False)['value'].first())
# 输出:
# id
# 3    10
# 1    20
# 2    30
# Name: value, dtype: int64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:04:56