Seaborn은 파이썬에서 사용되는 시각화 라이브러리입니다. 아름답고 다채로운 그래프를 그려 주고, 통계적 내용을 시각화에 쉽게 통합할 수 있도록 지원해 주는 파이썬 시각화의 꽃입니다. 이번 글에서는 챗GPT의 GPTs 가운데 Data Analyst에서 Seaborn으로 그래프를 그려봅니다.
데이터셋은 data.go.kr에서 제공하는 국민건강보험공단_건강검진정보입니다. 국민건강보험 가입자의 당해 연도 검진 결과 중 40대 이상에서 1백만 건이 랜덤으로 추출된 데이터셋입니다.
이 91MB 크기의 데이터셋을 시험 삼아 챗GPT에게 읽혀 보니, 의외로 일단 읽어 들이는데, 열 이름을 추출하다가 멈춥니다. 아무래도 무리인가 봅니다. 그래서 앞부분 20만 행(18MB)만 잘라서 사용합니다. 열도 원 데이터에 34개가 있는데, 대표성을 띠는 지표 12개만 추려서 사용합니다. 수축기 혈압과 이완기 혈압 중 수축기 혈압만을 사용하는 식입니다.
이번 글을 통해서 챗GPT가 Seaborn(이하 ‘sns’)을 활용하는 시각화를 어디까지 구현하는지 확인해 보시기 바랍니다.
대화 링크: https://chat.openai.com/share/ba405925-3aed-4c0c-9d8c-4c5383683ce9
전처리
필요한 열만 지정하여 파일을 읽어 들입니다. 행은 미리 1백만 개 가운데 앞쪽 20만 개를 추려서 csv로 저장해 두었습니다. 부담을 줄여주기 위하여 필요한 열만 읽으라고 합니다.
한글 폰트 파일(SCDREAM5.OTF)을 사용하여 그래프에 한글이 잘 표시되는지 확인하기 위한 시험 그래프를 그립니다. 아직 이상치 제거를 하지 않아서, 이상치의 영향으로 데이터가 한 쪽으로 쏠려 나오기는 하지만, 한글 표시는 잘 합니다. 이번 세션에는 한글 표시가 잘되지 않을까 기대해 봅니다.
참고로, 챗GPT가 Seaborn 라이브러리를 써서 그래프를 그릴 때 한글을 표시하는 수준은 세션에 따라 차이가 있습니다. 어떤 세션에서는 설정을 잘 하여 일부 그래프에서라도 한글을 표시하지만, 어떤 세션에서는 설정을 못하여 아예 표시하지 못하기도 합니다.
따라서 한글을 사용하려면 세션을 열자마자 그래프를 하나 그려서 한글을 표시하는지 확인하는 것이 좋습니다. 하지만 처음에 성공한다고 세션 내내 한글을 잘 표시하는 것은 아닙니다. 한글 표시가 반드시 필요한 경우가 아니라면 데이터를 영문으로 바꾸어 영문 그래프를 그리는 방법도 생각해 볼 수 있습니다.
열 이름을 간단하게 바꿉니다.
데이터 값이 숫자로 표현되어 있는 열들이 있어서 알아보기 쉽게 문자로 바꿉니다.
결측치를 제거합니다. 데이터가 충분히 많으니 고민하지 않고 결측치는 모두 제거합니다.
이상치