04 — LECTURE ·PY-11 ·2026.02.13

11. 라이브러리 소개

pandas·matplotlib·seaborn으로 데이터 분석과 시각화 입문

목차
  1. 학습 목표
  2. 1. 라이브러리(Library)란?
  3. 정의
  4. 사용법
  5. 왜 사용하는가
  6. 실습 11-1. math 라이브러리 — 기본 사용법
  7. 2. pandas — 데이터 분석의 핵심
  8. 개요
  9. 주요 기능
  10. DataFrame 구조
  11. 실습 11-2. pandas로 축구 선수 데이터 분석
  12. 3. matplotlib — 데이터 시각화의 기본
  13. 개요
  14. 주요 함수
  15. 실습 11-3. 막대 그래프 그리기
  16. 4. seaborn — 통계적 시각화
  17. 개요
  18. 주요 기능
  19. 상관관계 분석
  20. 실습 11-4. 상관관계 히트맵
  21. 라이브러리 import 퀴즈
  22. 학습 로드맵 정리

스포츠 데이터로 배우는 파이썬 기초.

학습 목표

  • 라이브러리의 개념과 import 사용법 이해
  • pandas로 DataFrame 생성 및 기초 분석
  • matplotlib로 막대 그래프 그리기
  • seaborn으로 상관관계 히트맵 그리기

1. 라이브러리(Library)란?

정의

  • 다른 개발자들이 미리 만들어 둔 재사용 가능한 코드(함수, 클래스) 모음
  • 비유: “직접 농사 짓는 대신, 마트에서 재료를 사오는 것”

사용법

import 라이브러리명
import 라이브러리명 as 별칭     # 별칭(alias) 사용

왜 사용하는가

  • 복잡한 기능을 직접 구현하지 않고 즉시 사용
  • 수천 명의 선수 기록 계산, 그래프 그리기를 단 몇 줄로 해결

실습 11-1. math 라이브러리 — 기본 사용법

import math

print(math.sqrt(16))    # 제곱근: 4.0
print(math.pi)          # 원주율: 3.14159...
4.0
3.141592653589793

2. pandas — 데이터 분석의 핵심

개요

  • 파이썬 데이터 분석의 필수 라이브러리
  • DataFrame: 행과 열로 구성된 2차원 표 구조 (엑셀과 유사)

주요 기능

메서드기능
pd.DataFrame(딕셔너리)DataFrame 생성
.head(n)상위 n개 행 확인
.describe()수치 열의 통계 요약 (평균, 최대 등)
df['열이름']특정 열 선택
df['새열'] = 계산식새로운 열 추가

DataFrame 구조

   Index  Name   Goals  Matches
   0      Son    23     35
   1      Kane   17     38
   2      Salah  19     35

실습 11-2. pandas로 축구 선수 데이터 분석

import pandas as pd

# 딕셔너리로 데이터 생성
data = {
    'Name': ['Son', 'Kane', 'Salah', 'Haaland'],
    'Goals': [23, 17, 19, 36],
    'Matches': [35, 38, 35, 35]
}
df = pd.DataFrame(data)

# 새로운 열 추가: 경기당 평균 득점
df['Avg_Goals'] = df['Goals'] / df['Matches']

# 상위 데이터 확인
print(df.head())
print()

# 통계 요약
print("--- 통계 요약 ---")
print(df.describe())
      Name  Goals  Matches  Avg_Goals
0      Son     23       35   0.657143
1     Kane     17       38   0.447368
2    Salah     19       35   0.542857
3  Haaland     36       35   1.028571

--- 통계 요약 ---
           Goals  Matches  Avg_Goals
count   4.000000     4.00   4.000000
mean   23.750000    35.75   0.668985
std     8.539126     1.50   0.254601
min    17.000000    35.00   0.447368
25%    18.500000    35.00   0.518985
50%    21.000000    35.00   0.600000
75%    26.250000    35.75   0.750000
max    36.000000    38.00   1.028571

3. matplotlib — 데이터 시각화의 기본

개요

  • 파이썬에서 가장 널리 사용되는 그래프 그리기 라이브러리
  • 관례적으로 plt 별칭 사용

주요 함수

함수기능
plt.bar(x, y)막대 그래프
plt.plot(x, y)선 그래프
plt.scatter(x, y)산점도
plt.title()그래프 제목
plt.xlabel() / plt.ylabel()축 레이블
plt.show()화면 출력

한글 텍스트를 그래프에 표시하려면 한글 폰트를 먼저 설정해야 한다.

# ── 한글 폰트 설정 (macOS / Windows 자동 감지) ──
import platform
import matplotlib.pyplot as plt
from matplotlib import rc

if platform.system() == 'Darwin':          # macOS
    rc('font', family='AppleGothic')
elif platform.system() == 'Windows':       # Windows
    rc('font', family='Malgun Gothic')

plt.rcParams['axes.unicode_minus'] = False  # 마이너스 깨짐 방지

# ──────────────────────────────────────────────
# [Google Colab 사용 시] 아래 코드를 실행하세요
# ──────────────────────────────────────────────
# !apt-get -qq install fonts-nanum
# import matplotlib.font_manager as fm
# font_path = '/usr/share/fonts/truetype/nanum/NanumGothic.ttf'
# fm.fontManager.addfont(font_path)
# plt.rcParams['font.family'] = 'NanumGothic'
# plt.rcParams['axes.unicode_minus'] = False
# ──────────────────────────────────────────────

print("한글 폰트 설정 완료!")
한글 폰트 설정 완료!

실습 11-3. 막대 그래프 그리기

import matplotlib.pyplot as plt

# 선수와 득점 데이터
names = ['손흥민', '케인', '살라', '홀란드']
goals = [20, 18, 19, 25]

# 막대 그래프
plt.bar(names, goals, color='skyblue')
plt.title('프리미어리그 득점 순위')
plt.ylabel('득점')
plt.show()

선수별 득점을 하늘색 막대 그래프로 표시한다. (막대 그래프 출력)

4. seaborn — 통계적 시각화

개요

  • matplotlib 기반의 통계 시각화 라이브러리
  • pandas DataFrame과 궁합이 매우 좋음
  • 기본 디자인이 깔끔하고 세련됨

주요 기능

함수기능
sns.heatmap()히트맵 (상관관계 등)
sns.barplot()통계 기반 막대 그래프
sns.scatterplot()산점도

상관관계 분석

  • df.corr() → 열 간의 상관계수 계산
  • sns.heatmap(corr, annot=True) → 숫자 표시된 히트맵

실습 11-4. 상관관계 히트맵

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

# 선수 데이터 생성
data = {
    '득점': [20, 18, 25, 15],
    '슈팅': [90, 85, 110, 70],
    '패스': [50, 60, 45, 80]
}
df = pd.DataFrame(data)

# 상관관계 히트맵
corr_matrix = df.corr()
sns.heatmap(corr_matrix, annot=True, cmap='Blues')
plt.title('축구 선수 데이터 상관관계 히트맵')
plt.show()

득점·슈팅·패스 세 열의 상관관계를 히트맵으로 표시한다. 각 칸에는 상관계수가 숫자로 표기된다. (히트맵 출력)

라이브러리 import 퀴즈

Q1. 라이브러리를 불러오는 올바른 구문은?

  • A) import pandas as pd
  • B) import matplotlib as plt()
  • C) import seaborn from sns
  • D) import numpy to np

Q2. pandas의 핵심 자료구조는?

  • A) 리스트
  • B) DataFrame
  • C) 텐서(Tensor)
# 퀴즈 정답
print("Q1 정답: A — import 라이브러리명 as 별칭 형식")
print("Q2 정답: B — pandas는 DataFrame(2차원 표)으로 데이터 처리")
Q1 정답: A — import 라이브러리명 as 별칭 형식
Q2 정답: B — pandas는 DataFrame(2차원 표)으로 데이터 처리

학습 로드맵 정리

노트북핵심 키워드
01. 변수와 데이터타입=, int, float, str, bool, type()
02. 연산자+, -, *, /, //, %, **, +=, ==
03. 문자열인덱싱, 슬라이싱, .upper(), f-string
04. 입력과 형변환input(), int(), float(), str()
05. 조건문if, elif, else, and, or
06. 반복문for, while, range(), break
07. 리스트[], .append(), .sort(), 2차원 리스트
08. 튜플과 딕셔너리() 불변, {} 키-값
09. 함수def, return, *args, lambda, global
10. 파일 입출력open(), write(), readlines()
11. 라이브러리pandas, matplotlib, seaborn