한국GPT협회 표준교재

551. 데이터 분석

같은 엑셀 파일, 세 가지 분석 환경 — VBA 집계에서 파이썬 통계까지

데이터 분석

Learning Objectives
  • 파이썬 데이터 분석의 핵심 라이브러리(pandas·matplotlib·seaborn 등)의 역할을 구분한다.
  • GPT 채팅창·구글 코랩·로컬 파이썬 세 환경에서 동일한 엑셀 파일로 동일한 분석(파이차트·박스플롯·히트맵·회귀)을 수행한다.
  • 보안·저장·자동화 관점에서 세 환경의 장단점을 비교하고 업무에 맞는 환경을 고른다.
이해

분석 환경 3종

학습 안내읽기. 라이브러리 표는 외우지 말고 "이런 이름이 코드에 나오면 이런 역할" 수준으로만 익혀 두십시오. 가장 중요한 것은 마지막 환경 3종 비교표입니다 — 통합 실습에서 환경을 고르는 기준이 됩니다.

엑셀(VBA)의 끝, 파이썬의 시작

Ch4에서 본 것처럼 합계·평균 같은 집계와 기본 차트는 VBA로 충분합니다. 그러나 분석이 깊어지면 한계가 옵니다 — 수십만 행 이상에서 느려지고, 박스플롯·히트맵 같은 통계 그래프와 회귀분석·검정 같은 통계 분석은 VBA로 구현하기 매우 번거롭습니다. 파이썬은 이 지점부터 시작합니다.

구분엑셀 VBA파이썬
데이터 규모수만 행까지 쾌적, 그 이상은 급격히 느려짐수백만 행도 처리 (pandas)
시각화막대·선·원형 등 엑셀 기본 차트박스플롯·히트맵·산점도 행렬 등 통계 그래프 수십 종
통계 분석함수 조합으로 제한적회귀·검정·분류·군집까지 라이브러리 한 줄
재현성버튼·매크로 중심, 과정 추적 어려움코드 = 분석 과정의 기록. 같은 코드 = 같은 결과
설치 부담없음 (엑셀에 내장)환경 필요 — 단, GPT·코랩을 쓰면 설치 없이 가능

파이썬 핵심 라이브러리 5종

파이썬이 강력한 이유는 언어 자체보다 라이브러리 생태계입니다. 데이터 분석에서는 다음 다섯 개만 알면 코드의 대부분을 읽을 수 있습니다.

라이브러리역할코드에서 보이는 모습
pandas표 데이터 처리 (엑셀의 시트 역할)pd.read_excel(), df.describe(), df.groupby()
matplotlib그래프의 기본 엔진plt.pie(), plt.boxplot(), plt.scatter()
seaborn통계 그래프를 한 줄로 (matplotlib 기반)sns.heatmap(), sns.boxplot()
scikit-learn / statsmodels회귀·분류 등 통계·머신러닝LinearRegression().fit(X, y)
openpyxl엑셀 파일 읽기/쓰기 (pandas가 내부 사용)pd.read_excel() 실행 시 자동 동원

분석 환경 3종 — 어디에서 파이썬을 돌릴 것인가

이 장의 핵심 구도입니다. 같은 파일, 같은 분석을 세 환경에서 반복하며 차이를 몸으로 확인합니다.

환경강점한계맞는 상황
① GPT 채팅창
Code Interpreter
가장 쉬움 — 파일 첨부 + 한국어 대화. 코드를 AI가 쓰고 실행까지 해 줌.세션이 끝나면 코드·환경 소멸. 매번 다시 업로드. 외부 서버 업로드라는 보안 고려.일회성 분석, 분석 방향 탐색, 입문
② 구글 코랩
colab.research.google.com
노트북이 Drive에 영구 저장 — 다음 달 같은 분석을 재실행. 예약 실행 등 자동화 여지. Google 인프라 기반의 보안·운영 신뢰성.인터넷 필수, 세션 머신은 휘발성(파일 재업로드 또는 Drive 마운트). 일부 패키지 제약.반복되는 정기 분석, 팀과 노트북 공유
③ 로컬 파이썬
Python + Jupyter
데이터가 PC 밖으로 나가지 않음(확실한 보안). 패키지·라이브러리 제약 없음. 사내망 데이터도 분석 가능.설치·환경 관리 필요. PC 사양에 의존.민감 데이터, 고급 패키지, 상시 업무화
판단 기준 한 줄. "이 데이터가 회사 밖으로 나가도 되는가?" — 안 되면 ③ 로컬. 되면 "다음에 또 할 분석인가?" — 또 하면 ② 코랩, 한 번이면 ① GPT 채팅창. 어떤 환경이든 분석 코드는 동일한 파이썬이므로, GPT가 짜 준 코드를 코랩·로컬로 그대로 가져갈 수 있습니다.
사례

엑셀 HR 대시보드 (VBA)

HR · 인사

학습 안내직접 실행. Ch4의 M2·M3(집계·그래프)를 한 단계 발전시킨 형태입니다. 프롬프트를 실행해 코드를 받아 두고, "집계 → 초기화 → KPI → 차트 → 새로고침"의 5단 흐름이 프롬프트 요구사항 어디에 있는지 짚어 보십시오.

비즈니스 상황 — 매월 보는 인사 현황을 버튼 하나로

인사팀 담당자가 매월 인원·퇴사율·급여 현황을 정리해 보고합니다. 대시보드는 여러 차트와 핵심 지표(KPI)를 한 화면에 모아 보여주는 시트입니다 — 원본 데이터가 바뀌어도 버튼 클릭 한 번으로 전체가 새로고침되도록 VBA로 자동화합니다.

1
집계
원본 시트 → 요약 데이터
2
초기화
기존 차트·데이터 삭제
3
KPI 카드
핵심 지표 자동 입력
4
차트 배치
2개 이상 자동 삽입
5
새로고침
버튼 1번으로 전체 갱신
대시보드 자동 생성 — VBA 프롬프트
HR데이터 시트 기반으로 대시보드를 자동 생성하는 VBA를 작성해줘. 요구사항: 1. "대시보드" 시트가 없으면 새로 만들고, 있으면 초기화 2. KPI 영역 (A1:D3): 총 인원, 퇴사자 수, 평균 급여, 퇴사율(%) 3. 차트 1: 부서별 인원 수 (막대형) — F1 위치, 가로 400 × 세로 280 4. 차트 2: 직급별 평균 급여 (가로 막대형) — F16 위치, 가로 400 × 세로 280 5. KPI 셀에는 진한 파랑 배경(#1e3a5f), 흰 글씨 적용 6. 실행 후 대시보드 시트로 이동
매크로 기록기 활용법. 엑셀에서 직접 차트 서식을 바꾸면서 개발 도구 → 매크로 기록을 켜 두면 내 조작이 VBA 코드로 자동 변환됩니다. 이 코드를 AI에 붙여넣고 "이 서식을 모든 차트에 적용하는 매크로로 일반화해줘"라고 요청하면, 원하는 서식을 말로 설명하는 것보다 훨씬 정확합니다.
그리고 여기까지가 VBA의 단맛입니다. 인원수·평균·비율 같은 집계와 기본 차트는 이렇게 끝납니다. 그런데 "퇴사에 영향을 주는 변수는 무엇인가?", "급여 분포가 부서별로 통계적으로 다른가?" 같은 질문은 VBA로 답하기 어렵습니다 — 다음 섹션부터 파이썬으로 넘어가는 이유입니다.
실습

HR 대시보드 완성

HR · 인사

학습 안내산출. Ch4를 마쳤다면 같은 요령(모듈 추가 → 코드 붙여넣기 → 실행)입니다. 완료 기준: "대시보드" 시트에 KPI 4칸과 차트 2개가 생성되고, 원본 데이터의 한 행을 바꾼 뒤 매크로 재실행 시 숫자가 갱신되면 통과.

달성 목표
제공된 HR 샘플 데이터(300명)로 KPI 카드 4종 + 차트 2개가 자동 배치되는 대시보드 시트를 만들고, 버튼(양식 컨트롤)에 매크로를 연결해 한 번의 클릭으로 갱신되게 한다.
최종 결과물 — 대시보드 시트
총 인원
300명
퇴사자 수
36명
평균 연봉
5,300만
퇴사율
12.0%
차트 1 — 부서별 인원 수
영업
연구개발
경영지원
마케팅
인사
영업부연구개발부경영지원부마케팅부인사부

실습 순서

  1. 실습 데이터 HR인사데이터_샘플.xlsx를 연다. (시트명: HR데이터 — 사번·부서·직급·연봉·입사년도·재직상태 300행)
  2. 시연 프롬프트를 실행해 코드를 받고, 컬럼명이 실제 데이터와 다르면 프롬프트의 시트 구조 설명을 고쳐 재요청한다.
  3. Alt+F11 → 모듈 추가 → 코드 붙여넣기 → 실행해 대시보드 시트를 확인한다.
  4. 삽입 → 도형(또는 양식 컨트롤 버튼)에 매크로를 연결하고, 원본 한 행을 수정한 뒤 버튼으로 갱신되는지 확인한다.
사례

환경 ① GPT 채팅창

공통 · 품질/R&D

학습 안내직접 실행. 실습 데이터를 ChatGPT에 첨부하고 아래 프롬프트 3개를 순서대로 실행하십시오. 그래프가 나올 때마다 교재의 샘플 그래프와 비교하고, "코드 보기"를 눌러 AI가 쓴 파이썬 코드를 한 번씩 훑어보는 것까지가 학습입니다.

실습 데이터 — 바나나 품질 측정 8,000건

품질관리팀이 수집한 바나나 8,000개의 측정 데이터입니다(data analysis_banana_quality.xlsx). 수치형 변수 7개 — Size(크기) · Weight(무게) · Sweetness(당도) · Softness(연도) · HarvestTime(수확 시점) · Ripeness(숙성도) · Acidity(산도) — 와 품질 등급 Quality(Good/Bad) 1개로 구성됩니다. "어떤 조건의 바나나가 Good 판정을 받는가"가 분석 질문입니다.

프롬프트 ① 기초 탐색 — 데이터부터 파악한다

기초 탐색 (파일 첨부 후)
첨부한 엑셀 파일을 읽고 다음을 정리해줘. 1) 행/열 규모와 각 컬럼의 의미 추정 2) 수치형 컬럼의 기초 통계량(평균·표준편차·최소·최대) 표 3) 결측치·이상치 여부 4) 이 데이터로 해볼 만한 분석 질문 3가지 제안

프롬프트 ② 시각화 3종 — 파이차트 · 박스플롯 · 히트맵

시각화 요청
이 데이터로 다음 3개의 그래프를 그려줘. 각 그래프 아래에 "읽는 법" 2줄씩 덧붙여줘. 1) Quality(Good/Bad) 비율 파이차트 — 비율과 건수 함께 표시 2) Quality별 Sweetness 분포 박스플롯 — 두 그룹 비교 3) 수치형 변수 7개 전체의 상관관계 히트맵 — 상관계수 숫자 표시

프롬프트 ③ 회귀분석 — 통계로 한 걸음 더

회귀분석 요청
상관관계가 가장 강한 변수 쌍을 찾고, 그 쌍으로 단순 회귀분석을 해줘. 1) 산점도 + 회귀선 그래프 2) 회귀식과 결정계수(R²) 3) 통계 비전공자도 이해할 수 있는 해석 3줄 4) 이 회귀로 말할 수 있는 것과 말할 수 없는 것(인과관계 주의) 각 1줄

아래는 실제로 이 데이터에서 만들어지는 결과 그래프입니다. 여러분의 결과도 같은 모양이 나와야 합니다(색·폰트는 달라도 됩니다).

Quality 비율 파이차트
결과 ① 파이차트 — Good 4,006건(50.1%) vs Bad 3,994건(49.9%). 균형 잡힌 데이터.
품질별 당도 박스플롯
결과 ② 박스플롯 — Good 그룹의 당도 중앙값이 뚜렷이 높다. 당도가 품질 판정의 핵심 후보.
상관관계 히트맵
결과 ③ 히트맵 — Size↔HarvestTime이 +0.58로 가장 강한 상관. Weight↔Sweetness +0.42.
회귀분석 산점도와 회귀선
결과 ④ 회귀 — Size = 0.623 × HarvestTime − 0.28 (r=0.58, R²≈0.34). 수확이 늦을수록 크기가 커지는 경향.

AI가 생성한 분석 코드 — 세 환경에서 공통으로 쓰는 코드

프롬프트 ②·③에 대해 GPT가 작성·실행하는 코드의 핵심입니다. 이 코드를 복사해 두십시오 — 다음 섹션의 코랩과 로컬에서 그대로 다시 실행합니다.

banana_analysis.py — 공통 분석 코드
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 데이터 불러오기 (코랩·로컬에서는 파일 경로만 환경에 맞게 변경)
df = pd.read_excel("data analysis_banana_quality.xlsx")
print(df.shape)            # (8000, 8)
print(df.describe())       # 기초 통계량

# ① Quality 비율 파이차트
df["Quality"].value_counts().plot.pie(autopct="%1.1f%%", startangle=90)
plt.title("바나나 품질 비율"); plt.ylabel(""); plt.show()

# ② Quality별 Sweetness 박스플롯
sns.boxplot(data=df, x="Quality", y="Sweetness")
plt.title("품질 등급별 당도 분포"); plt.show()

# ③ 상관관계 히트맵
corr = df.select_dtypes("number").corr()
sns.heatmap(corr, annot=True, fmt=".2f", cmap="RdBu_r", vmin=-1, vmax=1)
plt.title("상관관계 히트맵"); plt.show()

# ④ 단순 회귀분석 — 가장 강한 상관쌍 (HarvestTime → Size)
from sklearn.linear_model import LinearRegression
X = df[["HarvestTime"]]; y = df["Size"]
model = LinearRegression().fit(X, y)
print("회귀계수:", model.coef_[0])      # 0.623
print("절편:", model.intercept_)        # -0.28
print("결정계수 R²:", model.score(X, y))  # 약 0.34

plt.scatter(df["HarvestTime"], df["Size"], s=6, alpha=0.3)
plt.plot(X, model.predict(X), color="red", linewidth=2)
plt.xlabel("HarvestTime"); plt.ylabel("Size")
plt.title("수확 시점과 크기의 회귀분석"); plt.show()
한글 깨짐. GPT 채팅창(Code Interpreter)·코랩 기본 환경에는 한글 폰트가 없어 그래프 한글이 □로 깨질 수 있습니다. "NanumGothic 폰트를 설치·적용해 다시 그려줘"(GPT) 또는 코랩 첫 셀에 폰트 설치 코드를 넣어 해결합니다(다음 섹션 참고).
이 환경의 한계를 기억하십시오. 지금의 분석 코드와 실행 환경은 채팅 세션이 끝나면 사라집니다. 다음 달 같은 분석을 하려면 파일을 다시 올리고 처음부터 다시 시켜야 합니다. 또한 파일이 외부 서버에 업로드되므로 Ch1의 보안 원칙(금지 6종·가명화)이 그대로 적용됩니다.
사례

환경 ② 구글 코랩

공통 · 품질/R&D

학습 안내직접 실행(무료). 구글 계정만 있으면 됩니다. 환경 ①에서 복사해 둔 공통 분석 코드를 코랩에 붙여넣고 실행해, "같은 코드가 다른 환경에서 그대로 돈다"는 것과 "노트북이 Drive에 저장된다"는 것 두 가지를 확인하십시오.

GPT 채팅창 분석과 무엇이 다른가

장점 1코드의 영구 저장

노트북(.ipynb)이 구글 Drive에 저장됩니다. 다음 달 같은 분석은 노트북을 열어 재실행 한 번 — 채팅을 처음부터 다시 할 필요가 없습니다. 코드+설명+결과가 한 문서에 남아 팀 공유·인수인계 자료가 됩니다.

장점 2재실행과 자동화 가능성

데이터 파일만 바꿔 끼우면 전체 분석이 그대로 반복됩니다. 셀 단위 실행으로 분석 과정을 통제할 수 있고, Drive 마운트·예약 실행과 결합하면 정기 리포트 자동화의 출발점이 됩니다.

장점 3Google 인프라의 신뢰성

기업 환경에서 OpenAI 업로드는 막혀 있어도 Google Workspace는 허용된 곳이 많습니다. 데이터가 회사가 이미 신뢰 관계를 맺은 Google 계정·Drive 권한 체계 안에서 관리된다는 점이 도입 설득에 유리합니다.

따라하기 — 코랩에서 같은 분석 재현

  1. colab.research.google.com 접속 → 새 노트북.
  2. 왼쪽 폴더 아이콘 → 업로드로 data analysis_banana_quality.xlsx를 올린다.
  3. 첫 셀에 한글 폰트 설치 코드를 실행한다 (아래 코드 블록).
  4. 환경 ①의 공통 분석 코드를 붙여넣고 실행 — 같은 그래프 4종이 나오는지 확인한다.
  5. 파일 → 저장. Drive의 "Colab Notebooks" 폴더에 노트북이 저장된 것을 확인한다.
코랩 첫 셀 — 한글 폰트 설치 (런타임 다시 시작 후 본 코드 실행)
!apt-get -qq install fonts-nanum
import matplotlib.font_manager as fm
import matplotlib.pyplot as plt
fm.fontManager.addfont("/usr/share/fonts/truetype/nanum/NanumGothic.ttf")
plt.rcParams["font.family"] = "NanumGothic"
plt.rcParams["axes.unicode_minus"] = False
코드를 직접 쓰지 않아도 됩니다. 코랩에도 Gemini 기반 AI 코딩이 내장되어 있고, 막히면 GPT에 "코랩에서 ○○하려는데 이 오류가 났다"고 물으면 됩니다. 핵심은 코드를 외우는 것이 아니라 실행 환경을 옮길 줄 아는 것입니다.
사례

환경 ③ 로컬 파이썬

공통 · 보안 중시

학습 안내설치 + 실행. 설치 권한이 있는 PC라면 아래 4단계로 환경을 만들고, 제공된 완성 노트북을 열어 실행해 보십시오. 설치가 어려운 환경이면 읽고 넘어가도 됩니다 — 통합 실습은 환경 ①·②만으로 가능합니다.

코랩과 무엇이 다른가

장점 1확실한 보안

데이터가 내 PC 밖으로 한 발짝도 나가지 않습니다. 고객 정보·내부 단가처럼 외부 업로드가 금지된 데이터(Ch1 금지 6종)도 분석할 수 있는 유일한 환경입니다. 사내망 DB 연결도 가능합니다.

장점 2패키지·라이브러리 무제한

코랩에 없는 전문 패키지(사내 전용 라이브러리, 특수 통계·시뮬레이션 도구, 한글 형태소 분석기 등)를 pip install로 자유롭게 설치합니다. 버전 고정으로 재현성도 완전히 통제됩니다.

설치 4단계 — 파이썬과 주피터 노트북

단계할 일방법
1파이썬 설치python.org/downloads에서 최신 버전 설치. 설치 첫 화면에서 "Add Python to PATH" 체크가 가장 중요합니다.
2설치 확인명령 프롬프트(cmd)에서 python --version 입력 — 버전이 출력되면 성공.
3라이브러리 설치pip install jupyter pandas matplotlib seaborn scikit-learn openpyxl 한 줄 실행.
4주피터 노트북 실행데이터가 있는 폴더에서 jupyter notebook 입력 → 브라우저가 열리면 New → Notebook. 코랩과 똑같은 셀 인터페이스입니다.

따라하기 — 로컬에서 같은 분석 재현

  1. 실습 폴더에 data analysis_banana_quality.xlsx와 완성 노트북 data_analysis_banana_quality.ipynb를 내려받는다.
  2. 그 폴더에서 jupyter notebook을 실행하고 노트북을 연다.
  3. 위에서부터 셀을 차례로 실행(Shift+Enter)하며 데이터 로딩 → 탐색 → 히스토그램 → 히트맵 → 회귀분석을 재현한다.
  4. 환경 ①의 공통 분석 코드도 새 셀에 붙여넣어 같은 그래프 4종을 확인한다. (로컬은 Windows 기본 폰트로 plt.rcParams["font.family"]="Malgun Gothic" 한 줄이면 한글이 해결됩니다)
설치 오류는 AI에게. PATH 미설정, pip 인식 불가, 권한 오류가 가장 흔합니다. 오류 메시지 전체를 복사해 "windows에서 파이썬 설치 중 이 오류가 났다"고 질문하십시오 — Ch4의 디버깅 대화법이 환경 구축에도 그대로 적용됩니다.
실습

통합 실습

공통 · 품질/R&D

학습 안내산출. 환경 ①은 필수, ②·③ 중 하나 이상을 골라 같은 분석을 재현합니다. 완료 기준: 그래프 4종(파이·박스·히트맵·회귀)이 두 환경에서 모두 나오고, 아래 산출물 체크 3건이 채워지면 통과.

달성 목표
바나나 품질 데이터에 대해 ① GPT 채팅창에서 대화로 분석 → ② 그 코드를 코랩 또는 로컬로 옮겨 재실행까지 완주한다. "AI에게 분석을 시키고, 그 결과(코드)를 재사용 가능한 자산으로 옮기는" 이 흐름이 이 장 전체의 결론이다.
최종 산출물 체크 — 3건
#산출물완료 기준
1그래프 4종 (두 환경 각각)파이차트·박스플롯·히트맵·회귀 산점도가 교재 샘플과 같은 형태
2회귀 해석 메모 3줄회귀식·R²·"말할 수 있는 것/없는 것"이 본인 문장으로 정리됨
3저장된 분석 자산코랩이면 Drive의 .ipynb, 로컬이면 폴더의 .ipynb — 다음 달 재실행 가능한 상태

실습 순서

  1. 환경 ①: 데이터를 첨부하고 프롬프트 ①~③을 실행한다. 결과 그래프를 교재 샘플과 비교한다.
  2. GPT에게 "지금까지의 분석 전체를 하나의 파이썬 스크립트로 정리해줘"라고 요청해 공통 코드를 받는다.
  3. 환경 ② 또는 ③: 받은 코드를 코랩(또는 로컬 주피터)에 붙여넣고 파일 경로·한글 폰트만 손봐 재실행한다.
  4. 산출물 체크 3건을 확인하고, 두 환경의 체감 차이(편의성·속도·저장)를 한 줄로 메모한다.
회사 데이터로 바꿔 생각하기. 이 실습의 바나나 데이터를 "고객 만족도 조사", "공정 측정값", "매출 거래 내역"으로 바꾸면 그대로 업무 분석이 됩니다. 단, 회사 데이터는 환경 선택 전에 반드시 Ch1의 보안 기준(외부 업로드 가능 여부)부터 판정하십시오.
실습

부록 · 더 해보기

학습 안내선택 · 부록. 학습이 빠른 분을 위한 추가 미션입니다. 관심 가는 것 1개만 골라 진행해도 충분합니다.

MISSION 1다중회귀와 분류 모델

단순 회귀를 넘어 ① "Size·Weight·HarvestTime으로 Sweetness를 예측하는 다중 회귀분석을 하고 각 변수의 영향력을 비교해줘" ② "수치형 변수 7개로 Quality(Good/Bad)를 예측하는 로지스틱 회귀를 만들고 정확도와 가장 중요한 변수를 알려줘"를 실행해 보십시오. 제공된 완성 노트북의 회귀분석 셀과 결과를 비교하면 좋습니다.

MISSION 2내 업무 데이터로 전환

본인 업무의 엑셀 데이터 1개를 골라 같은 4단계(탐색 → 시각화 3종 → 상관 → 회귀)를 적용해 보십시오. 시작 전에 ① 외부 업로드 가능 여부 판정 ② 불가하면 가명화·치환 후 진행 또는 로컬 환경 사용 — 보안 판정 자체가 이 미션의 절반입니다.

MISSION 3분석 결과를 보고서·자동화로 연결

완성한 그래프를 Ch3의 흐름대로 보고서·PPTX에 삽입하고, 더 나아가 "매주 갱신되는 데이터 파일을 코랩 노트북으로 분석 → 결과 차트를 메일로 발송"하는 흐름을 설계해 보십시오. Ch6(Make)·Ch7(n8n)의 자동화와 만나는 지점입니다.

과정 정리
  • VBA로 가능한 분석(집계·차트·KPI)과 파이썬이 필요한 분석(통계·고급 시각화)을 구분할 수 있다
  • pandas·matplotlib·seaborn·scikit-learn의 역할을 한 줄씩 설명할 수 있다
  • 같은 엑셀 파일을 GPT 채팅창과 코랩(또는 로컬)에서 동일하게 분석해 보았다
  • 파이차트·박스플롯·상관관계 히트맵·회귀분석 결과를 읽고 해석할 수 있다
  • 보안·저장·자동화 기준으로 세 분석 환경 중 업무에 맞는 것을 고를 수 있다