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
반응형
'Computer Engineering > Data Engineering' 카테고리의 다른 글
Pandas dataframe 메모리 사용량 확인하기 (0) | 2022.12.02 |
---|---|
Airflow Taskflow로 DAG refactoring하기 (0) | 2022.11.14 |
Airflow Sensor 정리 (feat. S3 Sensor) (0) | 2022.07.12 |
Airflow k8s 로컬 개발환경 셋팅 (2) | 2022.07.08 |
IntelliJ로 Spark 개발 환경 구축하기 (0) | 2022.07.01 |