데이터 분석을 하기 전 데이터 전처리를 할 때, 결측치(결측값, NaN)가 있으면 데이터 분석을 할 때 문제가 될 수 있는데요, 사전에 결측치가 있는지 알아보는 것이 중요합니다.
하지만 데이터가 많지 않을 때 결측치가 있는지 한 눈에 알 수 있지만 데이터가 매우 많다면 결측치가 어디에 있는지, 칼럼마다 몇 개가 있는지 확인하기 어려울 수 있습니다. 따라서 pandas 에서는 결측치가 얼마큼 있는지 알려주는 함수를 제공하는데요, 아래 예시와 코드를 보면서 설명하도록 하겠습니다.
1. isnull() : 결측치 확인하기
먼저, 결측치가 있는지 확인하는 함수는 isnull() 함수로, 각 행, 열마다 결측치가 있는 데이터가는 True, 결측치가 아닌 데이터는 False를 반환합니다.
예를 들어, 아래와 같은 데이터 프레임이 있다고 가정해보겠습니다.
temp item count price rating
0 hot coffee 1.0 3000 NaN
1 ice juice 5.0 4000 3.0
2 ice ade NaN 5000 4.0
3 hot milk 4.0 2000 2.5
4 NaN tea 3.0 4000 3.0
5 ice water 2.0 1000 4.5
위 데이터프레임을 보면, 첫 번째 0행과 2행, 4행에 결측치가 있는 것을 눈으로 볼 수 있습니다.
이제 isnull() 함수를 사용해보도록 하겠습니다.
df.isnull()
temp item count price rating
0 False False False False True
1 False False False False False
2 False False True False False
3 False False False False False
4 True False False False False
5 False False False False False
그 결과, 위 데이터 프레임에서 결측치가 있는 곳은 True, 나머지는 False로 반환됨을 확인할 수 있습니다.
2. isnull().sum() : 칼럼마다 결측치 개수 세기
한편, 위와같이 데이터가 적어도 isnull()로 결측치가 있는지 확인하는 것은 좋은 방법처럼 보이진 않은데요,
이렇게 나타내기보다는, 각 칼럼마다 결측치가 몇 개 있는지 구하는 게 더 효과적일 수 있습니다.
칼럼마다 결측치의 갯수를 구하는 방법은 isnull() 함수 뒤에 sum() 함수를 사용하는 것으로, 다음과 같이 코드를 입력하면 됩니다.
df.isnull().sum()
temp 1
item 0
count 1
price 0
rating 1
dtype: int64
그 결과, 각 칼럼마다 결측치가 몇 개씩 있는지 한눈에 살펴볼 수 있는데요,
isnull().sum() 함수는 결측치를 제거하기 전 / 후로 결측치가 있는지 확인할 때 자주 사용된답니다.
'BLOG > 데이터분석' 카테고리의 다른 글
[데이터분석] 데이터프레입 : 중복된 행 삭제 - drop_duplicates (0) | 2021.03.11 |
---|---|
[데이터분석] 데이터프레임 : 중복된 행 찾기 & 개수 - duplicated(), sum() (0) | 2021.03.11 |
[데이터분석] 데이터프레임 concat() 으로 병합 시, 인덱스 재배열 하는 방법 (0) | 2021.03.11 |
[데이터분석] 데이터프레임 : 위/아래, 좌/우로 합치기 - concat() (0) | 2021.03.11 |
[데이터분석] 데이터 프레임 : 행과 열 바꾸기 - transpose() (0) | 2021.03.11 |