brunch

You can make anything
by writing

C.S.Lewis

by 김영하 Oct 11. 2022

효율적으로 EDA를 하자!

pandas-profiling편, 이제 EDA를 한다고 시간을 버리지말자

이번에는 pandas-profiling이라는 파이썬 라이브러리로 EDA 보고서를 만들어 보겠습니다.


https://pypi.org/project/pandas-profiling/


설치는 



로 간단히 끝납니다.


pandas-profiling은 sweetviz나 dataprep과 같이 간단히 EDA가 가능합니다. 이번에도 5줄만에 EDA 보고서 생성이 가능합니다.


1. 데이터 불러오기

2. EDA 실행 및 레포트 생성

3. EDA 보고서 보기


이 3가지를 각각 소스코드 1줄씩으로 표현할 예정입니다. 데이터는 가장 만만한 데이터인 타이타닉 데이터를 사용하겠습니다.


https://www.kaggle.com/competitions/titanic



이번에도 매우 간단합니다. ^^


1행은 타이타닉 데이터를 불러오기 위해 사용할 판다스 라이브러리를 불러옵니다.

2행은 우리를 위해 EDA를 하고 보고서를 만들 파이썬 라이브러리인 pandas-profiling을 불러옵니다.


4행에서는 타이타닉의 학습 데이터인 train.csv를 불러와서 df이라는 데이터프레임에 저장합니다.


6행에서는 4행에서 불러온 데이터프레임 df를 가지고 " 타이타닉 Profiling Report"라는 보고서를 만들어 달라고 요청합니다.

7행에서는 생성한 보고서를 브라우저에서 열어보거나, 다른 사람에게 공유할 수 있도록, html 파일로 저장합니다. 이 때, 파일이름은 "타이타닉_EDA_보고서.html"로 저장됩니다.


위 소스코드를 실행하면 잠시 뒤 "타이타닉_EDA_보고서.html" 파일이 생성됩니다. 직접 만들려면 고생을 해야 하지만, pandas-profiling에게 맡기면 금방 생성해 주는 보고서 입니다. 특히 이 보고서는 대화형입니다. 즉, 우리가 클릭을 하면 클릭한 방식으로 각종 결과를 보여줍니다.


분석한 타이타닉 데이터에 대한 요약을 보여줍니다. 


데이터셋의 변수들마다 범주형 및 수치형에 맞는 기술통계량들이 보여집니다. Toggle details를 클릭하면 자세한 내용을 숨기거나 다시 볼 수 있습니다.


수치 데이터에 한해서 X축, Y축을 선택해서 산점도를 그릴 수 있습니다.


다양한 방법으로 상관계수를 구해줍니다.


결측 데이터의 갯수뿐만 아니라 해당 변수 안에서의 분포도 알 수 있습니다.

분석한 데이터의 원래 데이터를 10개정도 보여줍니다.


지금까지 dataprep, sweetviz, pandas-profiling 총 3가지로 탐색적 자료 분석 보고서를 만들어 보았습니다. 각각의 특징들이 있다는 것을 알 수 있습니다. 제 개인적으로는 pandas-profiling이 가장 자세한 정보를 보여주는 것은 아닌가하는 생각힙니다. 1개에만 맹신하지 말고, 3개 모두 어렵지 않으니 3개 보고서를 만들고 같이 살펴보는 것은 어떨까 하는 생각입니다.


그럼 효율적으로 하는 데이터분석을 같이 시작해보시지요!!!

작가의 이전글 효율적으로 EDA를 하자! - sweetviz편
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari