如何为带DatetimeIndex的pandas.Series添加精准类型提示?
解决方案
当然可以指定Series的索引为DatetimeIndex,只需在类型提示中利用pandas的泛型标注能力,明确指定Series的索引类型:
import pandas as pd from typing import Any def filter_year(s: pd.Series[Any, pd.DatetimeIndex], year: int) -> pd.Series[Any, pd.DatetimeIndex]: keep = s.index.year == year return s[keep]
说明
pd.Series[Any, pd.DatetimeIndex]中,第一个参数Any代表Series的值类型(如果你的Series有明确值类型,比如float或int,可以替换成对应类型),第二个参数指定索引为DatetimeIndex。- 这种泛型标注需要pandas 1.3.0及以上版本支持,升级到对应版本后,编辑器就能识别
s.index的类型是DatetimeIndex,不会再提示属性访问错误。
内容的提问来源于stack exchange,提问作者ElRudi
相关产品推荐
相关产品推荐

