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

Pandas分类数据groupby行为异常疑问:含缺失组合/结果长度异常

Pandas分类数据groupby行为解析

我搞不懂Pandas里分类数据的groupby行为,遇到两种特殊情况:

  • 情况1:groupby操作会自动添加'A'和'B'的缺失组合
  • 情况2:分组结果的长度和原DataFrame完全一致

但当'A'和'B'是整数类型时,两种情况的分组结果完全一致。

输入数据

![输入数据]

分类数据分组结果

![分类数据分组结果]

整数数据分组结果

![整数数据分组结果]

原因解析

这是因为Pandas对分类类型的groupby默认行为和数值类型存在差异:

  • 分类类型默认会包含所有预定义的分类值组合(哪怕原数据里不存在这些组合),同时默认不丢弃缺失值,所以会出现“补全缺失组合”的情况。
  • 整数等数值类型的groupby只会基于数据中实际存在的取值组合分组,不会自动补充不存在的组合。

统一行为的方法

如果想让分类数据的groupby和整数类型表现一致,只需要在分组时加上observed=True参数:

df.groupby(['A', 'B'], observed=True).sum()

这个参数会强制groupby只保留原数据中实际出现过的(A,B)组合,不会补全缺失的分类组合,结果就会和整数类型的分组结果一致。

内容的提问来源于stack exchange,提问作者E.L

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 07:12:20