[CH01] 05. 판다스 프로파일링

SoYeong Gwon·2022년 6월 30일
0

Introduction to NLP

목록 보기
2/3
post-thumbnail

본 게시물은 아래 wikidocs의 실습을 참고하여 작성되었습니다. https://wikidocs.net/book/2155


  • 머신 러닝 결과를 얻기 위해서는 데이터의 성격을 파악하는 과정
  • 데이터 내 값의 분포, 변수 간의 관계, Null 값과 같은 결측값 존재 유무를 파악하는 과정을 EDA(Exploratory Data Analysis, 탐색적 데이터 분석)이라고 함.
  • 방대한 양의 데이터를 가진 데이터프레임을 .profile_report()라는 명령으로 탐색하는 패키지

01. 실습 파일 불러오기

import pandas as pd
import pandas_profiling

data=pd.read_csv('파일 경로',encoding='latin1')
# data=pd.read_csv('D:\\2022\\Introduction-to-NLP-\\01. Preparing NLP\\Data\\spam.csv',encoding='latin1')
data[:5]
  • v1 : 해당 메일이 스팸인지 아닌지를 나타내는 레이블
    • ham : 정상 메일
    • spam : 스팸 메일
  • v2 : 메일의 본문

02. 리포트 생성하기

pr = data.profile_report() # 프로파일링 결과리포트를 pr에 저장
#data.profile_report() # 바로 결과보기 

pr.to_file('./pr_report.html') #html 파일로 저장 

3. 리포트 살펴보기

  • 이제 html 형식으로 저장된 리포트를 분석하자.

(1) 개요(Overview)

  • 데이터의 전체적인 개요를 보여줌.
    • 데이터의 크기, 변수의 수, 결측값 비율(missing value), 데이터의 종류

  • Dataset info

    • 해당 데이터는 총 5572개의 샘플을 가지고 있으며, 5개의 열을 가지고 있음.
    • 하나의 값을 셀이라고 하였을때, 총 5572 * 5개의 셀이 존재하지만 그중 16648개(59.8%)가 결측값으로 확인됨.
  • Warnings

    • Unnamed라는 3개의 열에 존재 (99% 이상의 결측값)
    • v2열은 5169개의 중복되지 않은 값을 가지고 있음. (distinct value)
      • 403개의 메일은 중복이 존재한다는 의미

(2) 변수(Variables)

  • 변수는 데이터에 존재하는 모든 특성 변수들에 대한 결측값, 중복을 제외한 유일한 값의 개수등의 통계치를 보여줌.

  • Unnamed라는 이름을 가진 3개의 열에 대해서, 3개의 열 모두 99% 이상의 값이 결측값임.
  • (예) Unnamed_2열은 총 5572개의 값 중에서 5522개가 결측값임.
    • 이는 총 50개의 결측값이 아닌 값이 존재함을 의미
    • 리포트 상에서 Distinct count 중복을 제거한 유일한 값의 개수는 44개임.

  • 다른 2개의 열인 v1과 v2를 봤을때, v2은 메일의 본문, v1은 spam 유무
    • v1은 Distinct Count가 2개로 4825개의 정상 메일, 747개의 스팸 메일이 있음.
    • v2은 5169개의 유일한 내용의 메일 본문을 가짐.
      • 가장 중복이 많은 메일은 Sorry, I'll call later'라는 내용의 메일로 총 30개의 메일이 존재함.
  • 두 열(v1,v2)에는 결측값이 존재하지 않음.

(3) 상세사항 확인하기(Toggle Details)

v1의 상세사항 확인하기

(1) Common Values

  • 총 2개의 탭이 존재하는데, 첫번째 탭인 빈도값(common values)에서는 각 값의 분포를 상세하게 보여줌.
  • v1의 경우, ham이 총 4825개로 이는 전체 값 중 86.6%에 해당되며, spam은 747개로 전체 값 중에서는 13.4%에 해당됨.

(2) Complosition

  • 전체 값의 최대 길이, 최소 길이, 평균 길이와 값의 구성에 대해 볼 수 있음.
  • spam또는 ham이라는 1개 단어만 존재
  • 문자열의 길이로 Max, Min Length가 정해짐
    • Max: spam(4)
    • Min: ham(3)
  • spam 또는 ham 구분으로만 이루어져 있어 contains chars에만 True가 표시됨.

v2의 상세사항 확인하기

  • 중복이 존재하는 상위 10개 메일의 내용 확인

(1) Composition

  • 데이터 최대 길이는 910, 최소 길이는 2, 평균 길이는 80임을 알 수 있음.
  • 메일 본문에는 숫자, 글자, 공백, 특수문자가 모두 포함되어 있어 모든 Contains는 True

0개의 댓글