EDA란? Pandas로 하는 기초적인 EDA
EDA
Exploratory Data Analysis
- raw data를 다양한 각도에서 관찰, 데이터를 이해하는 과정
- 기본적인 3가지 과정
- 데이터의 출처와 주제에 대해 이해
- 어디서 얻은 데이터인지, 정확한지 세부 정보 파악
- e.g.) “사람들이 배너를 많이 클릭했다” -> Web/App/Mobile에 따라 data value가 다를 수 있음
- 데이터의 크기 확인
- sampling한 데이터가 너무 작으면 예측 정확성이 떨어질 수 있음
- 데이터 구성 요소(feature)의 속성(특징) 확인
- feature가 무엇인지, 값의 의미는 무엇인지 확인
- 데이터의 출처와 주제에 대해 이해
CDA
Confirmatory data analysis
- 가설을 세우고 검증하는 통계학적 모델링에 의한 데이터 분석
Pandas 데이터프레임 읽기
- 구분자는 보통 comma이지만 특수한 경우 데이터에 맞게 지정
- 에러나는 데이터는 보통 제외하고 로드
# csv
doc = pd.read_csv("file_name", encoding='utf-8-sig', quotechar=',', error_bad_lines=False)
# excel (특정 sheet 로드시)
doc = pd.read_excel("file_name", sheet_name="sheet_name")
Pandas를 활용한 기본 EDA
# 데이터 처음 5개 확인
doc.head()
# 데이터 처음 10개 확인
doc.head(n=10)
# 데이터 마지막 5개 확인
doc.tail()
# 데이터 사이즈 확인
doc.shape # (row, column) (2000,12)
# column별 데이터 타입과 실제 데이터가 있는 사이즈 확인
doc.info()
# 각 column 이해
doc.columns
# numeric data의 경우 기본 통계량(평균, 중간값 등) 확인
doc.describe()
# 속성간 상관관계 이해
doc.corr()
doc.corr(method='pearson') # 상관관계를 구하는 방법 정해줄 수 있음, default는 pearson
데이터 시각화를 통한 EDA
- 기존 라이브러리: matplotlib, searborn
- 최신 라이브러리: plotly
# 주피터 노트북에 그래프를 그리기 위한 명령
%matplotlib inline
Series 상세 탐색
countries = doc['Country_Region'] # 해당 column series만 추출
countries.size # 사이즈
countries.count() # 데이터 없는 경우 제외한 사이즈
countries.unique() # 유일한 값 리턴
countries.value_counts() # 데이터가 없는 경우 제외한 각 값의 개수
# 특정 조건에 맞는 row 추출
doc_us = doc[doc['Country_Region'] == 'US']