11. 라이브러리 소개
pandas·matplotlib·seaborn으로 데이터 분석과 시각화 입문
목차
스포츠 데이터로 배우는 파이썬 기초.
학습 목표
- 라이브러리의 개념과 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 |