EDA

  • Exploratory Data Analysis
  • raw data를 다양한 각도에서 관찰, 데이터를 이해하는 과정
  • 기본적인 3가지 과정
    1. 데이터의 출처와 주제에 대해 이해
      • 어디서 얻은 데이터인지, 정확한지 세부 정보 파악
      • e.g.) “사람들이 배너를 많이 클릭했다” -> Web/App/Mobile에 따라 data value가 다를 수 있음
    2. 데이터의 크기 확인
      • sampling한 데이터가 너무 작으면 예측 정확성이 떨어질 수 있음
    3. 데이터 구성 요소(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']