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

为什么pandas中groupby后调用median与quantile(0.5)结果不一致?

差异原因及解决方案

核心原因

该问题是pandas 1.0.1版本中groupby.median()和groupby.quantile(0.5)的底层实现逻辑不一致导致的:

  • 实现路径不同:1.0.x版本中,groupby.median()直接调用numpy的nanmedian方法完成计算,而groupby.quantile()采用pandas独立实现的分位数计算逻辑,两套逻辑的数值计算流程不同,会产生微小的浮点精度尾差。
  • 插值规则不同:当分组内有效数据量为偶数时,quantile(0.5)默认采用linear线性插值规则计算中间值,而numpy的nanmedian对偶数个数据直接取中间两数的平均值,二者在整数类型、离散值类型的列计算中会出现可观测的结果差异。

对齐结果的方法

  • 调整quantile的插值参数即可和当前版本的median结果对齐:
    df.groupby(['PUMA', 'R65'])['HINCP'].quantile(0.5, interpolation='midpoint')
    
  • 升级pandas到1.3.0及以上版本也可解决该问题,新版本中median()内部直接调用quantile(0.5)实现,二者返回结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:06:03