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

pandas.groupby.agg(sum)中inf与非inf的顺序是否影响结果?

含inf的Series分组求和结果异常:位置影响输出(NaN/Inf)

我在对包含inf的pd.Series(或pd.DataFrame)分组求和时,发现原数据中inf的位置会导致结果出现nan或inf的差异。

示例复现

先创建一个带两级MultiIndex的Series:

import pandas as pd
import numpy as np

mid = pd.MultiIndex.from_tuples([('a',1), ('a',2), ('b',1), ('b',2), ('c',1), ('c',2)])
df = pd.Series(np.array([np.inf, 1, 1, np.inf, np.inf, np.inf]), index=mid)

输出的Series内容:

a  1    inf
   2    1.0
b  1    1.0
   2    inf
c  1    inf
   2    inf
dtype: float64

按第一级索引分组求和后,结果不符合预期:

df.groupby(level=[0]).agg(sum)

输出结果:

a    NaN
b    inf
c    NaN
dtype: float64

疑问点

按NumPy的运算规则,np.inf + 1、1 + np.inf、np.inf + np.inf的结果都是inf,所以我预期所有分组的求和结果都应该是inf。即使改用np.nansum,得到的结果也完全一致。

我了解到pandas曾存在过与inf和分组求和相关的bug,但这些bug均已关闭修复,且未涉及inf的位置对结果的影响。

请问在pandas 1.4.4版本中,为什么inf的位置会影响分组求和的计算结果?为什么两个inf相加会得到nan?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 06:41:08