Python의 NaN
Python의 NaN 다루기
NaN¶
NaN은 Not-A-Number의 약자로, 숫자가 아닌 값들을 나타낸다.
pandas로 데이터를 처리하다보면 은근히 NaN을 다룰 일이 많은데, 몇몇 라이브러리들이 제공하는 NaN 여부 검사용 함수들은 입력값이 str일 경우 에러를 발생시키기 때문에 Boolean 값을 반환하는 함수를 만들어보았다.
Note
pandas는 테이블 데이터를 읽을 때 빈 셀을 np.nan으로 처리하는데, 칼럼 타입은 문자열일 경우1에 정상적으로 데이터를 처리하기 위해 math.isnan(), np.isnan()으로 NaN 여부를 검사하면 정상 데이터가 있을 때 에러가 발생한다.
import math
def is_nan(x):
return x != x
data = ["a", 1, 1.0, math.inf, math.nan, float("nan")]
for d in data:
print(repr(d), is_nan(d))
Tip
아래와 같이 pandas.isna() 함수를 통해 동일한 작업을 처리할 수도 있다.
Reference¶
-
해당 셀에 입력되어야 하는 데이터 타입은 문자열일 경우 ↩