import numpy as np
import pandas as pd

# None과의 비교
print(None == None)  # True
print(None == np.nan)  # False
print(None == pd.NaT)  # False

# NaN과의 비교
print(np.nan == np.nan)  # False
print(np.nan == None)  # False
print(np.nan == pd.NaT)  # False

# NaT와의 비교
print(pd.NaT == pd.NaT)  # False
print(pd.NaT == None)  # False
print(pd.NaT == np.nan)  # False

None의 경우에만 그나마 == 비교가 가능하다.

다른 경우는 그 자신을 == 처리해도 False가 나온다.

[문제는 이래도 에러가 안 난다.]

nan이나 NaT같은 값들은 특정 value를 지니는 게 아니라, 애초에 비교 자체를 상정하지 않는, 일종의 상태 label 같은 느낌이다.

꼭 np.isnan()이나 pd.isna() 같은 걸로 비교하자.

 

+ Recent posts