Table of Contents

Python

NaN과 Null(None)

꼬꼬마코더 2024. 4. 18. 10:50
728x90

`NaN` (Not a Number)과 `null` (또는 `None` in Python)은 모두 데이터가 누락되었거나 사용할 수 없을 때 사용되는 값이지만, 그 용도와 의미에서 차이가 있습니다.

### NaN (Not a Number)
- **용도**: `NaN`은 주로 숫자 데이터를 다루는 상황에서 사용됩니다. 부동 소수점 수치 연산에서 유효하지 않거나 정의되지 않은 값(예: 0으로 나누기)을 나타낼 때 사용됩니다.
- **특성**: `NaN`은 IEEE 부동 소수점 표준에 정의된 특수한 부동 소수점 값입니다. `NaN`은 다른 `NaN`과 비교해도 항상 거짓을 반환하는 특이한 특성을 가지고 있습니다. 즉, `NaN == NaN`은 `False`입니다.
- **사용**: 데이터 분석과 과학 계산에서 주로 사용됩니다. 예를 들어, 데이터셋의 숫자형 열에서 누락된 값을 표현할 때 `NaN`을 사용할 수 있습니다.

### Null (또는 Python에서는 None)
- **용도**: `null` (Python에서는 `None`)은 값이 없음을 나타낼 때 사용됩니다. 이는 데이터 타입에 관계없이 어떤 변수나 객체의 값이 "존재하지 않음"을 의미할 때 사용됩니다.
- **특성**: `null`은 데이터 타입이 정해지지 않았고, 아무런 값도 대입되지 않은 상태를 나타냅니다. Python에서 `None`은 `NoneType`의 유일한 인스턴스입니다.
- **사용**: 프로그래밍에서 변수가 초기화되지 않은 상태를 표현하거나, 함수에서 유효한 반환 값을 제공하지 않을 때 사용됩니다. 데이터베이스에서도 `NULL`을 사용하여 필드가 비어 있음을 표시합니다.

### 차이점 요약
- **데이터 타입**: `NaN`은 수치 데이터에 한정되어 사용되며, `null`은 모든 타입의 데이터에 사용될 수 있습니다.
**연산 참여**: `NaN`은 수치 연산에 참여할 수 있지만 결과도 `NaN`이 되며, `null`은 대부분의 연산에서 사용할 수 없습니다.
- **비교 동작**: `NaN`은 자기 자신과도 비교할 때 `False`를 반환하는 반면, Python의 `None`은 자기 자신과 비교할 때 `True`를 반환합니다.



이러한 차이점을 이해하는 것은 데이터를 처리하고, 프로그램을 작성할 때 정확한 값의 사용과 오류 방지에 중요합니다. 데이터가 누락된 경우 적절한 처리가 이루어지도록 구분해서 사용해야 합니다.

 

### 함수

isna() , isnull() , np.isnan() 세 함수 모두 np.nan과 None 을 True로 반환합니다

 

 

 

 

 

2024.04.18 - [Python] - NaN과 None을 구분하려면?

 

NaN과 None을 구분하려면?

`NaN` (Not a Number)과 `None`을 구분하는 것은 때로는 중요할 수 있습니다. 이 두 값은 서로 다른 유형이며, 특정 상황에서는 이를 명확히 구분해야 할 필요가 있습니다. Pandas와 Python에서 이 두 값의

everydaysummerbreeze.tistory.com