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
반응형