“NaTType”对象没有属性“isna”

Mar*_*tin 7 python pandas

我正在尝试根据其他列中的值在以下 Pandas DataFrame 中创建一个新列“Var”。我在处理 , 时遇到问题NaNNaT

数据:(在上一步中 使用的apply(pd.to_datetime)列)Date

日期 C A 年龄
2017-12-13 1233.0 9
钠盐 5
2007-09-24 49.0 14

代码:

def program(Flat):
    if Flat['A'] == 'N' :
        return 0
    elif Flat['Date'].isna() :
        return Flat['Age'] + 1
    elif Flat['C'] < 365 :
        return 1
    elif Flat['C'] >= 365 :
        return math.floor((Flat['C'])/365.25) + 1

Flat['Var'] = Flat.apply(program, axis=1)
Run Code Online (Sandbox Code Playgroud)

错误:AttributeError:“NaTType”对象没有属性“isna”

尝试通过 Anaconda 和 Python 运行。都是同样的错误。Pandas 版本是 1.3.3。

检测类型的正确方法是什么NaT

Tim*_*rts 4

“NaT”(对于日期/时间类型)和“NaN”不同。但是,您可以对这两种类型使用“isnull”函数:

    elif pd.isnull(Flat['Data']):
Run Code Online (Sandbox Code Playgroud)