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

使用Pandas Series做函数类型标注时出现TypeError: 'type' object is not subscriptable

问题原因

你遇到的TypeError: 'type' object is not subscriptable错误,是因为旧版本的Pandas中,Series不属于泛型类型,不能像List[Any]这类标准库泛型一样,通过[Any]下标指定内部元素的类型。只有Pandas 1.3.0及以上版本才支持Series的泛型类型标注。

解决方案

方案一:升级Pandas到1.3.0及以上版本

如果你的项目允许升级依赖,直接更新Pandas后,原有代码可以正常运行。更规范的写法可以先定义类型变量,增强类型约束的灵活性:

from typing import TypeVar, Any
from pandas import Series

T = TypeVar('T', bound=Any)

def func(w: Series[T], v: Series[T]) -> int:
    # 编写函数逻辑
    return 0

方案二:兼容旧版本Pandas的写法

如果无法升级Pandas,直接移除泛型下标,仅标注Series类型即可:

from pandas import Series

def func(w: Series, v: Series) -> int:
    # 编写函数逻辑
    return 0

若你希望明确标注元素类型,且使用Python 3.9及以上版本,也可以用Annotated来补充说明:

from typing import Annotated, Any
from pandas import Series

def func(w: Annotated[Series, Any], v: Annotated[Series, Any]) -> int:
    # 编写函数逻辑
    return 0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:40:24