volunteer#봉사#파이썬#Python#NumPy#Pandas#Matplotlib#Seaborn

파이썬 기초와 데이터 처리 라이브러리

풍생고등학교 코딩봉사 4주차

2026년 5월 29일3분 읽기조회 73
공유

Python · NumPy · Pandas · Matplotlib · Seaborn


목차

  1. 파이썬 기초 문법 — 변수, 조건문, 반복문, 함수
  2. NumPy — 배열과 수치 연산
  3. Pandas — DataFrame과 데이터 전처리
  4. 데이터 시각화 — Matplotlib, Seaborn

SECTION 01. 파이썬 기초 문법

변수와 자료형

변수란?

데이터를 저장하는 '이름표'예요. 물건을 담는 상자에 이름을 붙이는 것과 같아요.

파이썬의 주요 자료형

자료형설명예시
int정수17, -3, 0
float소수3.14, -0.5
str문자열'안녕', "hello"
bool참/거짓True, False
# 변수에 값 저장하기
name = "풍생고"
age = 17
height = 172.5
is_student = True

# 변수 출력하기
print(name)      # 풍생고
print(age)       # 17
print(height)    # 172.5

# 자료형 확인하기
print(type(name))  # <class 'str'>

조건문 — if / elif / else

조건문이란?

'만약 ~라면 이렇게 해줘!'를 코드로 표현해요.

💡 들여쓰기(indent)가 매우 중요해요! 4칸 띄어쓰기 또는 Tab 키를 사용하세요.

score = 85
if score >= 90:
    print("A학점입니다!")
elif score >= 80:
    print("B학점입니다!")
elif score >= 70:
    print("C학점입니다!")
else:
    print("재시험 대상입니다.")
# 출력: B학점입니다!

반복문 — for / while

반복문이란?

같은 작업을 여러 번 반복할 때 사용해요.

  • for — 정해진 횟수만큼 반복. 리스트, 문자열 등을 하나씩 꺼내며 실행
  • while — 조건이 참인 동안 반복. 조건이 거짓이 되면 반복 종료

💡 range(n) — 0부터 n-1까지의 숫자를 만들어줘요. range(1, 6) → 1, 2, 3, 4, 5

# for 반복문 예시
fruits = ["사과", "바나나", "딸기"]
for fruit in fruits:
    print(fruit)

# range() 사용
for i in range(1, 6):
    print(i)   # 1, 2, 3, 4, 5

# while 반복문 예시
count = 1
while count <= 3:
    print(count)
    count += 1

함수 — def

함수란?

자주 쓰는 코드를 묶어서 이름을 붙인 것이에요. 필요할 때마다 이름만 불러서 재사용할 수 있어요.

  • 매개변수 — 함수에 전달하는 값
  • return — 함수의 결과값을 반환
# 함수 정의하기
def greet(name):
    message = "안녕, " + name + "!"
    return message

result = greet("김민준")
print(result)  # 안녕, 김민준!

# 두 수를 더하는 함수
def add(a, b):
    return a + b

print(add(10, 20))  # 30

SECTION 02. NumPy

NumPy — 배열(ndarray) 만들기

NumPy란?

Numerical Python의 줄임말이에요. 수학 계산과 배열 처리를 아주 빠르게 해줘요.

구분특징
리스트파이썬 기본, 느림
ndarrayNumPy 배열, 수치 연산에 최적화

💡 import numpy as np 로 불러와요!

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
print(arr)    # [1 2 3 4 5]

np.zeros(5)      # [0. 0. 0. 0. 0.]
np.ones(5)       # [1. 1. 1. 1. 1.]
np.arange(1, 6)  # [1 2 3 4 5]

# 2차원 배열 (행렬)
mat = np.array([[1,2],[3,4]])
print(mat.shape)  # (2, 2)

NumPy — 연산과 인덱싱

배열 연산의 장점

배열 전체에 한 번에 수식을 적용할 수 있어요!

  • arr[0] ← 첫 번째 값 (인덱스는 0부터!)
  • arr[1:3] ← 1번부터 2번 인덱스까지
import numpy as np
arr = np.array([10, 20, 30, 40])

print(arr * 2)   # [20 40 60 80]
print(arr + 5)   # [15 25 35 45]
print(arr ** 2)  # [100 400 900 1600]

print(arr[0])         # 10
print(arr[-1])        # 40 (마지막)
print(arr[1:3])       # [20 30]
print(arr[arr > 15])  # [20 30 40]

NumPy — 자주 쓰는 함수들

통계 함수

함수설명
np.sum()모든 값의 합계
np.mean()평균값
np.max()최댓값
np.min()최솟값
np.std()표준편차

배열 변형 함수

함수설명
reshape()모양 바꾸기 (1D → 2D)
flatten()2D → 1D로 펴기
sort()정렬
import numpy as np
scores = np.array([72, 85, 90, 60, 78])

print(np.sum(scores))   # 385
print(np.mean(scores))  # 77.0
print(np.max(scores))   # 90
print(np.min(scores))   # 60

reshaped = scores.reshape(5, 1)
print(np.sort(scores))  # [60 72 78 85 90]

SECTION 03. Pandas

Pandas — DataFrame 만들기

Pandas란?

표 형태의 데이터를 쉽게 다루는 라이브러리예요. 엑셀 같은 표를 코드로 다룬다고 생각하면 돼요!

DataFrame이란?

행(row)과 열(column)으로 이루어진 표예요. 엑셀의 시트 한 장과 같아요.

💡 import pandas as pd 로 불러와요!

import pandas as pd

data = {
    "이름": ["김민준", "이서연", "박지호"],
    "국어": [85, 92, 78],
    "수학": [78, 88, 95]
}
df = pd.DataFrame(data)
print(df)

Pandas — 데이터 탐색하기

핵심 탐색 함수

함수설명
df.head(n)처음 n개 행 보기 (기본 5개)
df.tail(n)마지막 n개 행 보기
df.shape(행 수, 열 수) 확인
df.info()열 이름, 타입 등 요약
df.describe()수치형 통계 요약 (평균, 최대 등)

💡 데이터를 파악하는 것이 분석의 첫 걸음!

import pandas as pd

df = pd.read_csv("students.csv")
print(df.head(3))
print(df.shape)    # (100, 4)
print(df.columns)
print(df.describe())

Pandas — 데이터 전처리

결측치(빠진 값) 처리

함수설명
df.isnull()빠진 값 확인
df.dropna()빠진 행 삭제
df.fillna(값)빠진 값을 특정 값으로 채우기
import pandas as pd
import numpy as np

data = {
    "이름": ["가", "나", "다"],
    "점수": [85, np.nan, 92]
}
df = pd.DataFrame(data)

print(df.isnull().sum())  # 점수: 1
df["점수"] = df["점수"].fillna(df["점수"].mean())

Pandas — 그룹별 집계 (groupby)

groupby란?

특정 열을 기준으로 데이터를 묶어서 계산해요. '반별 평균 성적'처럼 그룹 통계를 낼 때 사용해요.

💡 SQL의 GROUP BY와 같은 개념이에요!

함수설명
.mean()그룹별 평균
.sum()그룹별 합계
.count()그룹별 개수
.max()그룹별 최댓값
import pandas as pd

data = {
    "반": ["A","A","B","B","B"],
    "이름": ["김","이","박","최","정"],
    "점수": [85, 92, 78, 95, 88]
}
df = pd.DataFrame(data)

result = df.groupby("반")["점수"].mean()
print(result)
# A    88.5
# B    87.0

SECTION 04. 데이터 시각화

Matplotlib — 기본 차트 그리기

주요 차트 종류

함수설명
plt.plot()선 그래프 (추세 표현)
plt.bar()막대 그래프 (비교)
plt.scatter()산점도 (관계 표현)
plt.hist()히스토그램 (분포)

💡 import matplotlib.pyplot as plt

import matplotlib.pyplot as plt

months = ["3월","4월","5월","6월"]
scores = [72, 78, 85, 90]

plt.figure(figsize=(8, 4))
plt.plot(months, scores, marker="o")
plt.title("월별 성적 변화")
plt.xlabel("월")
plt.ylabel("점수")
plt.grid(True)
plt.show()

Seaborn — 더 예쁜 시각화

Seaborn 특화 차트

함수설명
sns.heatmap()히트맵 (상관관계)
sns.boxplot()박스플롯 (분포)
sns.pairplot()변수 쌍 관계도
sns.barplot()오차막대 포함 막대

💡 import seaborn as sns 로 불러와요!

import seaborn as sns
import matplotlib.pyplot as plt

df = sns.load_dataset("tips")

sns.barplot(x="day", y="total_bill", data=df)
plt.title("요일별 평균 계산서")
plt.show()

어떤 라이브러리를 언제 쓸까?

라이브러리주요 기능이럴 때 써요!예시
NumPy배열 생성, 수치 계산수학 계산이 많을 때성적 평균, 물리 계산
Pandas표 형태 데이터 처리CSV/엑셀 데이터 분석설문 데이터, 학생 명부
Matplotlib기본 시각화간단한 그래프 그릴 때선 그래프, 막대 그래프
Seaborn고급 통계 시각화예쁜 그래프가 필요할 때히트맵, 분포 비교

🐍 파이썬 기초

  • 변수와 자료형
  • 조건문 if/elif
  • 반복문 for/while
  • 함수 def

🔢 NumPy

  • 배열(ndarray)
  • 수치 연산
  • 인덱싱/슬라이싱
  • 통계 함수

📊 Pandas

  • DataFrame
  • 데이터 탐색
  • 전처리/결측치
  • groupby 집계

📈 시각화

  • Matplotlib 기초
  • Seaborn 고급
  • 차트 선택법

관련 포스트

댓글

방명록을 남겨주세요