我正在尝试根据其他列中的值在以下 Pandas DataFrame 中创建一个新列“Var”。我在处理 , 时遇到问题NaN
。NaT
数据:(在上一步中
使用的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
?
“NaT”(对于日期/时间类型)和“NaN”不同。但是,您可以对这两种类型使用“isnull”函数:
elif pd.isnull(Flat['Data']):
Run Code Online (Sandbox Code Playgroud)