首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >大熊猫从pandas.NaT变成pandas._libs.tslib.NaTType时的问题

大熊猫从pandas.NaT变成pandas._libs.tslib.NaTType时的问题
EN

Stack Overflow用户
提问于 2018-11-20 18:17:25
回答 3查看 12.1K关注 0票数 3

由于pandas 0.23.4完全不推荐pandas._libs.tslib.NaTType,所以我必须使用pandas.NaT,如0.23.2 changelog中所示,

代码语言:javascript
运行
复制
The type import pandas.tslib.NaTType is deprecated and can be replaced by using type(pandas.NaT)

但当我尝试下面的代码时,

代码语言:javascript
运行
复制
from pandas import NaT
val_type = type(val)

if issubclass(val_type, NaT):
   return 'NaT'

我有个错误,

代码语言:javascript
运行
复制
TypeError: issubclass() arg 2 must be a class or tuple of classes

如果我尝试,

代码语言:javascript
运行
复制
if isinstance(val_type, NaT):
   return 'NaT'

我发现了以下错误,

代码语言:javascript
运行
复制
TypeError: isinstance() arg 2 must be a type or tuple of types
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-11-20 18:26:16

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

票数 6
EN

Stack Overflow用户

发布于 2018-11-20 18:33:46

对其他答案稍作阐述:

pandas._libs.tslibs.nattype.NaTType是一个定义为这里的类。

代码语言:javascript
运行
复制
class NaTType(_NaT):
    """(N)ot-(A)-(T)ime, the time equivalent of NaN"""

pandas.NaT (引入顶级命名空间)是上面定义的这里类的一个实例。

代码语言:javascript
运行
复制
NaT = NaTType()

其原因是

这是一个伪本地哨兵值,可以用单数dtype ( NumPy ) (datetime64ns)表示。

issubclass()要求您传递一个实际的类,而不是类实例,使用type(pd.NaT)将为您完成这个任务,而不会直接访问任何“非公共”API。

票数 4
EN

Stack Overflow用户

发布于 2018-11-20 18:29:24

您需要给isinstance()您要寻找的实际类型。在本例中,我将执行type(df.loc[knownnatdata),并将其用作方法的输入。例如,我用pd.NaT填充了一个dataframe列

代码语言:javascript
运行
复制
df = pd.DataFrame([[1,1],[3,4],[3,4]], columns=["a", 'b'])
df['c'],df['d']=np.nan, pd.NaT

    a   b   c   d
0   1   1   NaN NaT
1   3   4   NaN NaT
2   3   4   NaN NaT

然后type(df['d'].iloc[0])给了我pandas._libs.tslibs.nattype.NaTType (这仍然是我的版本中的类型,但请注意,它仍然不仅仅是NaT)

与之相比

代码语言:javascript
运行
复制
isinstance(df['d'].iloc[0],pd._libs.tslibs.nattype.NaTType)
True
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53399137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档