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

如何通过方法名字符串调用pandas Rolling对象的任意聚合函数

pandas Rolling对象动态指定方法名调用聚合操作的解决方案

问题根因

Rolling对象没有将mean、median、max、min等聚合方法直接作为实例属性暴露,因此直接调用__getattr__方法无法获取到对应方法,会触发AttributeError。

解决方案

使用Rolling对象内置的agg()(别名aggregate())聚合入口,该方法原生支持传入方法名字符串来动态调用对应聚合逻辑,完全匹配使用需求。

基础用法示例

import pandas as pd

method_name = 'mean'
# 直接传入方法名字符串即可完成调用
result = pd.Series([1, 2, 3]).rolling(window=1).agg(method_name)

带参数的聚合方法调用示例

如果调用的方法需要额外传参(比如quantile需要指定分位值),直接在agg方法中追加参数即可:

method_name = 'quantile'
# 调用quantile方法并指定分位值为0.5
result = pd.Series([1, 2, 3, 4, 5]).rolling(window=3).agg(method_name, q=0.5)

以上方案对所有pandas Rolling支持的聚合方法都生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:06:00