Computer Engineering/Data Engineering

Pandas NaN이란 그리고 None 차이

jordan.bae 2022. 11. 13. 20:30

NaN이란

not a number로 비어있는 결측치 데이터를 의미합니다. numpy와 pandas에서는 None이 아닌 NaN을 사용하는데 그 이유는

vectorized 연산이 가능하기 때문입니다.  None을 넣으면 pandas를 사용해도 병렬 연산이 불가능해지기 때문에 결측치에 대해서는 np.nan을 사용해야합니다.

import numpy as np
s = pd.Series(['선화', '강호', np.nan, '소정', '우영'])

# 병렬 연산이 가능
s += '테스트'
s
0    선화테스트
1    강호테스트
2      NaN
3    소정테스트
4    우영테스트
dtype: object

 

타입 캐스팅 시 주의할 점.

그리고 np.nan은 다른 데이터들이 숫자인 경우는 float 타입 입니다. 그렇기 때문에 int로 type casting을 할 때 에러가 발생합니다.


s = pd.Series(['1', '2', np.nan])
s = s.astype('int64')
---------------------------------------------------------------------------
ValueError: cannot convert float NaN to integer

 

반응형