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

Pandas如何判断自定义聚合函数的有效性?

Pandas如何检测聚合函数是否生成合法聚合值?

我尝试用一个明显错误的函数计算DataFrame中特征的出现频率(我清楚这个函数不具备聚合能力):

def virus_p(count):
  return count / count.sum()

我不是要解决函数本身的问题,而是想弄明白Pandas是怎么识别出该函数存在问题的。以下是最小复现示例:

def virus_p(count):
  return count / count.sum()

df = pd.DataFrame([
    [1, 10],
    [1, 2],
    [2, 5],
])
df.columns = ['virus', 'days']
df.groupby('virus')['days'].agg(virus_p)

运行上述代码会报错**"Aggregation function must produce aggregated value"**,我曾在函数中加入print(count)语句,但报错发生在打印操作之前,这说明Pandas在调用函数前就已经检测到了问题。

我的疑问是:Python是动态类型语言,Pandas是如何提前知晓函数的输出类型的?它内置了类似mypy的类型检查器吗?

更新:我在Google Colab中无法复现该报错,但核心问题依然存在。根据Pandas文档,聚合函数需要能够处理DataFrame,或者可以用于DataFrame.apply(前者处理DataFrame对象,后者处理Series对象)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 08:40:00