[파이썬] pandas-profiling Develop Tip

pandas 는 웨스 메키니(Wes McKinney) 라는 개발자 분이 만든 툴로 AQR Capital Management에서 
근무하던 2008년부터 개발한 금융 데이터에 대한 계량적 분석을 수행하기 위한 고성능의 유연한 툴을 
만들면서 시작되었습니다.

개인적으로는 2016 PyCon Korea 코엑스 발표장에서 Keynote 발표 시 아주 가까이서 봤던 기억이 있습니다.

특히 jupyter lab 등으로 jupyter notebook 으로 Interactive 작업을 하며 데이터 과학자 등에게
데이터 가공하는 툴로 아주 필수적인 모듈이 되어 버렸습니다.

pandas를 이용하여 데이터를 (데이터 프레임) 가공하여 해당 자료에 대한 상세 프로파일링을 할 수 있는
pandas 상위 툴이 존재하는데 pandas-profiling 이라고 합니다.


간단히 살펴보면 다음과 같습니다.

우선 설치는, 윈도우 맥 리눅스 등에서

pip install pandas-profiling
으로 쉽게 설치할 수 있습니다.

이제 주피터 랩으로 열어 다음과 같이 작업을 해 봅니다.

위와 같이 import 를 하고,

# for numpy and pandas
import numpy as np
import pandas as pd

# for pandas profiling
import pandas_profiling as pp

샘플 데이터를 열어 봅니다. (sample.txt 를 저장하여 sample.csv 로 rename 합니다)

df = pd.read_csv('data/sample.csv')
df.tail(12)

해당 데이터를 열어서 확인합니다.

ppr = pp.ProfileReport(df)

이제 프로파일링을 위하여 Data Frame을 넣고 프로파일 리포트를 생성합니다.
해당 리포팅 생성하는데 시간이 많이 걸릴 수 있습니다. (간단한 자료도 수십초 걸린 것 같습니다)


해당 리포트를 쥬피터 노트북에 보이게 하거나,

ppr.to_widgets()
또는
ppr.to_notebook_iframe()

아니면, html 하나의 파일로 출력할 수 있습니다.

ppr.to_file(output_file='data/sample.ppr.html')


여기서 하나의 팁!

위의 작업을, 주피터 노트북이 아니라 일반 파이썬에서 단순 파이썬 프로파일링을 하여 html 결과로
출력하는 작업을 하는데, 실행할 때 다음과 같은 오류가 발생했습니다.

ModuleNotFoundError: No module named 'tkinter' error

해당 오류가 발생한 이유는 파이썬 인터프리터를 설치할 때,
Tk 모듈을 설치하지 않으면 발생하는 것인데
Tk 와는 실제 아무런 상관이 없지만 matplotlib 에서 참조하면서 
오류가 발생하는 것이었습니다.

찾다 찾다 확인해 보니, 다음과 같은 환경변수를 넣어주면 해결되는 것이었습니다.

export MPLBACKEND=agg

(해당 블로그 참조)

따라서 파이썬 코드로는 다음과 같이 처리하였습니다..

import os
import sys
# noinspection PyBroadException
try:
    # noinspection PyUnresolvedReferences
    import tkinter as tk
except Exception:
    os.environ['MPLBACKEND'] = 'agg'
import warnings
# noinspection PyUnresolvedReferences,PyPackageRequirements
import numpy as np
# noinspection PyPackageRequirements
import pandas as pd
import pandas_profiling as pp


어느 분께는 도움이 되셨기를 ..



덧글

댓글 입력 영역

구글애드텍스트