파이썬 데이터 분석 패키지 총정리
파이썬으로 데이터 분석을 하려면 데이터를 수집하고, 정리하고, 분석하고, 시각화하고, 예측하는 데 필요한 패키지를 사용합니다. 모든 패키지를 설치할 필요는 없으며, 분석 목적에 따라 선택하면 됩니다.
특히 IDLE에서 파이썬을 학습하고 데이터 과학까지 공부하려면 pandas, numpy, matplotlib, seaborn부터 시작하는 것이 좋습니다.
1. 데이터 분석 단계별 주요 패키지
① 데이터 수집
CSV · Excel · 웹 데이터
requests · BeautifulSoup · openpyxl
② 데이터 정리
결측값 · 중복 · 자료형 처리
pandas · NumPy
③ 데이터 분석 및 시각화
평균 · 상관관계 · 그래프
SciPy · Matplotlib · Seaborn
④ 예측 및 인공지능
분류 · 회귀 · 군집화 · 딥러닝
scikit-learn · XGBoost · PyTorch
2. 핵심 패키지 비교표
| NumPy | 수치 계산, 배열 연산 | 점수 평균·표준편차 계산 | 필수 |
| pandas | 표 형태의 데이터 처리 | 학생 성적표, 매출 데이터 분석 | 필수 |
| Matplotlib | 기본 그래프 작성 | 막대·선·원그래프 | 필수 |
| Seaborn | 통계 그래프, 시각화 디자인 | 과목별 점수 비교, 상관관계 히트맵 | 필수 |
| SciPy | 과학·통계 계산 | 통계적 검정, 확률분포 | 중급 |
| scikit-learn | 머신러닝 | 성적 예측, 고객 분류 | 중급 |
| statsmodels | 통계 모델·회귀분석 | 변수 영향 분석, 통계적 유의성 | 중급 |
| Plotly | 대화형 그래프 | 마우스로 확대·축소하는 그래프 | 선택 |
| openpyxl | Excel 파일 읽기·쓰기 | 엑셀 성적표 자동 처리 | 실무용 |
| Requests | 웹 데이터 요청 | 웹 API에서 자료 가져오기 | 실무용 |
| BeautifulSoup4 | HTML 분석 | 웹페이지 표·텍스트 수집 | 실무용 |
| Polars | 빠른 표 데이터 처리 | 대용량 CSV 분석 | 중급 |
| XGBoost | 고성능 머신러닝 | 매출·위험도 예측 | 중급 이상 |
| PyTorch | 딥러닝 모델 구축 | 이미지·텍스트 인공지능 | 고급 |
| TensorFlow / Keras | 딥러닝 모델 개발 | 이미지 분류, 예측 시스템 | 고급 |
| JupyterLab | 코드·표·그래프 통합 실습 환경 | 데이터 분석 보고서 작성 | 도구 |
이 표에서 패키지와 실행 환경은 구분해야 합니다. 예를 들어 pandas는 데이터를 분석하는 패키지이고, JupyterLab은 코드를 실행하고 결과를 정리하는 환경입니다. IDLE에서도 대부분의 분석 패키지를 사용할 수 있습니다.
3. 핵심 패키지 5개의 상세 설명과 예시
① NumPy — 수치 계산의 기본

주요 역할: 숫자 배열을 빠르게 계산하고 수학·통계 연산을 수행합니다.
활용 사례: 학생들의 시험 점수 평균, 표준편차, 최고점과 최저점 계산.
import numpy as npscores = np.array([90, 50, 77, 85, 68])print("평균:", np.mean(scores))print("최고점:", np.max(scores))print("최저점:", np.min(scores))print("표준편차:", round(np.std(scores), 2))
| np.mean() | 평균 | 74.0 |
| np.max() | 최댓값 | 90 |
| np.min() | 최솟값 | 50 |
| np.std() | 모집단 표준편차 | 약 14.17 |
핵심은 여러 숫자를 하나의 배열로 처리해 계산을 간결하게 한다는 점입니다.
② pandas — 표 형태의 데이터 분석

주요 역할: 행과 열로 구성된 표를 읽고, 수정하고, 분석합니다.
활용 사례: 학생별 성적표, 엑셀 매출표, 설문조사 결과 분석.
import pandas as pddf = pd.DataFrame({ '이름': ['민수', '영희', '철수'], '국어': [90, 85, 70], '수학': [50, 95, 80], '영어': [77, 88, 92]})# 표 전체 확인print(df)# 과목별 평균print(df[['국어', '수학', '영어']].mean())# 학생별 평균 점수 열 추가df['평균'] = df[['국어', '수학', '영어']].mean(axis=1)print(df)# 평균 80점 이상인 학생print(df[df['평균'] >= 80])
| 민수 | 90 | 50 | 77 | 72.33 |
| 영희 | 85 | 95 | 88 | 89.33 |
| 철수 | 70 | 80 | 92 | 80.67 |
-
DataFrame: 엑셀과 비슷한 표 구조
-
mean(): 평균 계산
-
axis=1: 각 행의 값으로 계산
-
df[df['평균'] >= 80]: 조건을 만족하는 행만 선택
pandas는 CSV, Excel, 데이터베이스 등 다양한 자료를 처리할 수 있어 데이터 분석의 중심 역할을 합니다.

③ Matplotlib — 다양한 그래프 작성

주요 역할: 데이터의 결과를 그래프로 표현합니다.
활용 사례: 과목별 점수 막대그래프, 월별 매출 추이, 점수 분포.
import matplotlib.pyplot as pltsubjects = ['Korean', 'Math', 'English']scores = [90, 50, 77]plt.bar(subjects, scores)plt.title('Subject Scores')plt.xlabel('Subject')plt.ylabel('Score')plt.ylim(0, 100)plt.show()
| plt.bar() | 막대그래프 | 과목별 점수 비교 |
| plt.plot() | 선그래프 | 월별 매출 변화 |
| plt.scatter() | 산점도 | 공부 시간과 성적의 관계 |
| plt.hist() | 히스토그램 | 학생 점수의 분포 |
| plt.pie() | 원그래프 | 항목별 비율 |
앞서 한글이 네모로 표시되는 문제를 해결하려면 Matplotlib의 폰트 설정을 별도로 적용해야 합니다.
④ Seaborn — 통계 분석에 적합한 시각화

주요 역할: 통계적 특성을 파악하기 좋은 그래프를 간결하게 만듭니다.
활용 사례: 과목별 성적 비교, 상관관계 분석, 점수 분포 비교.
import pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltdf = pd.DataFrame({ '과목': ['국어', '수학', '영어'], '점수': [90, 50, 77]})sns.set_theme(style='whitegrid')ax = sns.barplot(data=df, x='과목', y='점수')ax.set_ylim(0, 100)ax.set_title('과목별 점수')plt.show()
| sns.barplot() | 막대그래프 | 범주별 평균 비교 |
| sns.scatterplot() | 산점도 | 두 변수의 관계 |
| sns.heatmap() | 히트맵 | 변수 간 상관관계 |
| sns.boxplot() | 상자그림 | 분포와 이상치 파악 |
| sns.histplot() | 히스토그램 | 데이터 분포 확인 |
Matplotlib과 Seaborn의 차이: Matplotlib은 세밀한 그래프 설정에 강하고, Seaborn은 통계적 시각화를 더 간결하게 작성할 수 있습니다. Seaborn은 Matplotlib을 기반으로 동작합니다.

⑤ scikit-learn — 머신러닝과 예측

주요 역할: 데이터에서 패턴을 학습해 분류하거나 미래 값을 예측합니다.
활용 사례: 공부 시간에 따른 성적 예측, 합격 가능성 분류, 고객 유형 분류.
from sklearn.linear_model import LinearRegressionimport numpy as np# 공부 시간과 시험 점수의 예시 데이터hours = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)scores = np.array([45, 50, 60, 70, 80])# 선형회귀 모델 학습model = LinearRegression()model.fit(hours, scores)# 공부 시간 6시간일 때 예측prediction = model.predict(np.array([[6]]))print("예측 점수:", round(prediction[0], 1))
| LinearRegression() | 선형회귀 모델 생성 |
| fit() | 주어진 데이터로 모델 학습 |
| predict() | 학습된 모델로 예측 |
이 코드는 가상의 데이터에 직선을 맞춰 점수를 추정하는 교육용 예제입니다. 실제 성적을 정확하게 예측한다는 보장은 없습니다. scikit-learn은 회귀, 분류, 군집화 등 다양한 머신러닝 작업을 지원합니다.

4. 그 밖에 알아두면 좋은 패키지
| SciPy | 고급 과학·통계 계산 | 두 집단의 점수 차이 검정 |
| statsmodels | 통계 모델 및 회귀 결과 해석 | 공부 시간과 점수의 관계 분석 |
| openpyxl | Excel 파일 직접 읽기·쓰기 | 성적표.xlsx 수정 |
| requests | 웹 서버에 데이터 요청 | 공개 API에서 날씨 데이터 수집 |
| BeautifulSoup4 | HTML에서 필요한 내용 추출 | 웹페이지에서 표 내용 수집 |
| Plotly | 대화형 그래프 작성 | 웹 기반 분석 대시보드 |
| Polars | 효율적인 표 데이터 처리 | 대용량 CSV 처리 |
| XGBoost | 트리 기반 머신러닝 | 매출 및 위험도 예측 |
| PyTorch | 딥러닝 | 이미지와 텍스트 모델 구축 |
5. 데이터 분석을 시작할 때 설치할 패키지
처음부터 모든 패키지를 설치하기보다, 아래의 기본 패키지부터 설치하는 것을 추천합니다.
IDLE의 Shell 창에서 실행
import subprocessimport syspackages = [ "numpy", "pandas", "matplotlib", "seaborn", "scipy", "scikit-learn", "openpyxl"]subprocess.check_call([ sys.executable, "-m", "pip", "install", *packages])
Python 3.14에서는 패키지별로 지원 버전과 설치 가능 여부가 다를 수 있습니다. 설치 중 오류가 발생하면 오류 메시지를 확인해야 합니다. 패키지는 현재 IDLE이 사용하는 Python 환경에 설치해야 합니다. pandas의 공식 설치 안내에서도 pip를 통한 설치 방법을 제공합니다.

6. 추천 학습 순서
| 1 | NumPy | 평균·분산·표준편차 계산 |
| 2 | pandas | 학생 성적표 만들기 및 조건별 검색 |
| 3 | Matplotlib | 과목별 막대그래프와 월별 선그래프 |
| 4 | Seaborn | 점수 분포와 상관관계 분석 |
| 5 | SciPy·statsmodels | 통계적 검정과 회귀분석 |
| 6 | scikit-learn | 공부 시간에 따른 점수 예측 |
| 7 | requests·openpyxl | 외부 자료 수집 및 Excel 자동화 |
결론: 데이터 분석의 기본은 pandas + NumPy + Matplotlib + Seaborn이고, 예측까지 공부하려면 scikit-learn을 추가하면 됩니다. 이 조합으로 데이터 정리부터 통계 분석, 시각화, 머신러닝 입문까지 폭넓게 학습할 수 있습니다.