从 pandas._libs.tslib.NaTType 更改时,pandas 会出现 pandas.NaT 问题

dai*_*yue 2 python python-3.x pandas

由于pandas 0.23.4,pandas._libs.tslib.NaTType已完全弃用,因此我必须pandas.NaT按照0.23.2更改日志中的指示使用,

The type import pandas.tslib.NaTType is deprecated and can be replaced by using type(pandas.NaT)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试以下代码时,

from pandas import NaT
val_type = type(val)

if issubclass(val_type, NaT):
   return 'NaT'
Run Code Online (Sandbox Code Playgroud)

我有一个错误,

TypeError: issubclass() arg 2 must be a class or tuple of classes
Run Code Online (Sandbox Code Playgroud)

如果我尝试,

if isinstance(val_type, NaT):
   return 'NaT'
Run Code Online (Sandbox Code Playgroud)

我收到以下错误,

TypeError: isinstance() arg 2 must be a type or tuple of types
Run Code Online (Sandbox Code Playgroud)

小智 6

好吧,正如弃用消息所建议的那样,您应该使用type(pandas.NaT),而不是NaT直接使用。因此,如果您导入了名称,则可以执行issubclass(val_type, type(pandas.NaT)).