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¶
-
해당 셀에 입력되어야 하는 데이터 타입은 문자열일 경우 ↩