📅  最后修改于: 2023-12-03 15:19:14.654000             🧑  作者: Mango
numpy.isnat() 方法返回一个布尔数组,数组对于非NaT(NOT a TIME)的元素为 False, 对于NaT元素为 True。
NaT表示“不是时间”,表示时间值的缺失或无效值。
numpy.isnat(arr)
arr:输入数组。
返回布尔数组。(True表示输入数组中存在NaT元素,False表示输入数组中不存在NaT元素)。
import numpy as np
print("Input Array : \n", np.array(['2011-07-01', 'NaT', '2011-07-03'], dtype='datetime64[ns]'))
print("Output for isnat() : \n", np.isnat(np.array(['2011-07-01', 'NaT', '2011-07-03'], dtype='datetime64[ns]')))
以上示例会输出:
Input Array :
['2011-07-01T00:00:00.000000000' 'NaT' '2011-07-03T00:00:00.000000000']
Output for isnat() :
[False True False]
判断时间数组中是否存在NaT元素。
进行时间相关的运算的时候,需要将NaT元素视为该时间范围中的缺失值或无效值,此时可以使用numpy.isnat()方法对NaT元素进行处理。
import numpy as np
import pandas as pd
arr = np.array(['2011-07-01', 'NaT', '2011-07-03'], dtype='datetime64[ns]')
df = pd.DataFrame(arr, columns=['date'])
# 求出date中非NaT元素的数量
print("Non-NaT Count:", (df['date'] != np.datetime64('NaT')).sum())
以上示例会输出:“Non-NaT Count: 2”,即‘2011-07-01’和‘2011-07-03’是非NaT元素,不包括NaT元素。