pandas 데이터 결손처리 방법¶
이번 포스팅에서는 판다스를 활용한 데이터 결손처리에 대해 알아보도록 하겠습니다.
판다스에서 제공하는 isna() , fillna() 함수를 활용하면 간단하게 데이터 결손 처리가 가능합니다.
판다스를 임포트한 후 기존 포스팅에서 활용했던 타이타닉 데이를 이용해 데이터를 출력해 보겠습니다.
import pandas as pd
titanic_df = pd.read_csv('titanic_train.csv')
titanic_df.head(10)
Cabin 열을 보면 NaN 으로 표시되는 항목이 보입니다. 해당 데이터가 결손데이터 입니다.
info( ) 함수를 사용하여 데이터 확인¶
info() 함수를 사용하면 데이터 로우와 칼럼 , 칼럼별 데이터 타입, Non-null 개수, 데이터 타입 요약을 간단하게 확인할 수있습니다.
titanic_df.info()
891 개의 데이터 중 age, cabin 항목에 결손 데이터가 있음을 한눈에 확인 가능합니다.
isna() 함수를 활용한 데이터 확인¶
isna() 함수를 사용하면 NaN 값을 True /False 형식으로 반환합니다. sum() 함수를 추가하면 결손 데이터 갯수를 확인 가능합니다.
# isna() 를 이용해 NaN 을 확인
# True / False 값으로 결과를 반황함 (NaN 일 경우 True)
titanic_df.isna().head(3)
# SUM 함수를 추가해 결손 데이터 갯수 확인 가능
titanic_df.isna( ).sum( )
age 177, cabin 687, Embarked 2 개의 결손 데이터가 있음을 확인 할 수 있습니다.
fillna() 함수로 결손데이터 대체¶
fillna() 함수를 활용하면 결손데이터를 다른 데이터로 대체할 수 있습니다. Cabin 열의 결손 데이터를 'C00' 으로 대체해 보겠습니다.
# fillna() 함수로 결손데이터 대체 가능
titanic_df['Cabin'] = titanic_df['Cabin'].fillna('C000')
titanic_df.head(3)
age 는 mean() 함수를 사용하여 다른 데이터의 평균값으로 지정하고 , Embarked 는 'S' 로 대체해 보겠습니다.
titanic_df['Age'] = titanic_df['Age'].fillna(titanic_df['Age'].mean())
titanic_df['Embarked'] = titanic_df['Embarked'].fillna('S')
titanic_df.isna().sum()
isna() 함수로 다시 데이터를 확인해 보면 NaN 데이터가 모두 대체된 것을 확인 할 수 있습니다. 이제 실제 데이터를 한번 확인해 보겠습니다.
titanic_df.head(10)
기존 데이터와 비교해 보면 age 항목이 모두 정상적으로 대체된 것을 확인할 수 있습니다.
'Programming > Python' 카테고리의 다른 글
[Jupyter Notebook] Jupyter Theme 설치하기 (0) | 2020.06.19 |
---|---|
Pandas 데이터 핸들링 방법 살펴보기 (0) | 2020.05.29 |
pandas 로 엑셀 파일 읽어올 때 한글이 깨질 경우, 한글 폰트 세팅하기 (0) | 2020.05.18 |
[Numpy] ndarray 인덱싱, 정렬 기능 사용하기 (0) | 2020.05.15 |
[Numpy] ndarray 기본 및 데이터 타입 변환하기 (0) | 2020.05.10 |