如何为 Pandas 系列表达式指定类型提示
Posted
技术标签:
【中文标题】如何为 Pandas 系列表达式指定类型提示【英文标题】:How to specify a type hint for a Pandas series expression 【发布时间】:2021-12-18 01:34:12 【问题描述】:我定义了带有类型提示的布尔表达式来匹配 pandas DataFrame 中的行。 PyCharm 代码检查工具会标记这些表达式。
例如,考虑下面的代码 sn-p,给定一个 DataFrame holdings
,其中包含字段 IsCash
和 Weight
:
predicate_iscash: pandas.Series = holdings.IsCash == True
predicate_short: pandas.Series = predicate_is_cash & (holdings.Weight < 0)
代码检查器标记第二行并带有以下警告:
Unexpected type(s): (Series) Possible type(s): (bool) (int)
奇怪的是,下面的语句没有被标记:
predicate_short: pandas.Series = (holdings.IsCash == True) & (holdings.Weight < 0)
但是,我不想内联 predicate_iscash
,因为它在代码中的多个位置使用。
我可以使用什么解决方法来确保代码通过检查?
【问题讨论】:
【参考方案1】:以下工作并通过代码检查:
predicate_iscash: pandas.Series = holdings.IsCash == True
predicate_short: pandas.Series = predicate_is_cash & holdings.Weight.le(0)
【讨论】:
以上是关于如何为 Pandas 系列表达式指定类型提示的主要内容,如果未能解决你的问题,请参考以下文章