1  pandas 소개 및 개발 환경

pandas에 대한 간략한 소개 및 실습 및 개발 환경 구성을 다룹니다.

1.1 pandas 간략 소개

pandas는 Python에서 정형 데이터(혹은 표 형식)를 조작하고 분석하기 위한 오픈 소스 라이브러리입니다. 개발자인 Wes McKinney는 금융 데이터에 대한 정량 분석을 수행하던 중 유연하면서도 고성능인 도구의 필요성을 느껴 2008년 pandas 개발을 시작했습니다. 이름은 여러 개체를 여러 시점에 걸쳐 관찰한 자료를 뜻하는 계량경제학 용어 “패널 데이터”에서 유래했습니다.

pandas의 가장 큰 영향은 Python을 데이터 분석과 데이터 과학의 중심 언어로 확산시키는 데 기여했다는 점입니다. R의 data.frame에서 영감을 받은 DataFrame은 행과 열을 가진 표 구조를 직관적으로 표현하며, Python의 일반적인 문법과 결합해 데이터 분석의 진입 장벽을 낮췄습니다. 그 결과 pandas는 통계 분석, 금융, 공학, 연구, 교육, 머신러닝 전처리 등 다양한 분야에서 널리 사용되었고, 데이터 처리와 탐색을 수행하는 데이터 과학자의 대표적인 도구로 자리 잡았습니다. JetBrains의 조사에서도 데이터 탐색과 처리를 수행한다고 답한 응답자 가운데 77퍼센트가 pandas를 사용한 것으로 나타났습니다[1].

pandas는 Series와 DataFrame이라는 두 핵심 자료 구조를 제공합니다. Series는 인덱스를 가진 일차원 자료 구조이고, DataFrame은 여러 열과 행으로 구성된 이차원 자료 구조입니다. 사용자는 CSV, Excel, SQL 데이터베이스, JSON, Parquet와 같은 다양한 형식의 데이터를 읽고 쓸 수 있으며, 행과 열의 선택, 정렬, 필터링, 그룹화, 집계, 병합, 결측값 처리, 시계열 분석을 일관된 방식으로 수행할 수 있습니다. NumPy, Matplotlib, SciPy, scikit-learn, Jupyter와의 연계가 쉽다는 점도 pandas의 중요한 특징입니다.

pandas의 장점은 단순히 기능이 많다는 데 있지 않고, 데이터 분석 작업을 표현하는 추상화가 명확하다는 데 있습니다. 인덱스와 열 이름을 기반으로 연산하기 때문에 배열의 위치만으로 데이터를 다루는 방식보다 분석 의도를 코드에 잘 드러낼 수 있으며, groupby, merge, pivot, resample과 같은 연산을 조합해 복잡한 데이터 처리 과정을 비교적 간결하게 작성할 수 있습니다. 반면 모든 데이터를 주로 메모리에 올려 처리하므로 매우 큰 데이터에서는 메모리 사용량과 실행 속도가 문제가 될 수 있으며, 이는 pandas 3.x에서 크게 개선되었습니다.

pandas 3.0 계열에서는 문자열 열에 전용 문자열 자료형이 기본적으로 사용되고, Copy-on-Write가 기본 동작으로 활성화되었으며, 날짜와 시간 자료형의 기본 정밀도와 시간대 처리도 개선되었습니다. pandas는 성숙하고 안정적인 기본 분석 도구인 동시에, 자료형의 명확성, 메모리 처리, PyArrow와의 통합을 중심으로 현대적인 데이터 처리 환경에 적응하고 있습니다.

1.2 개발 환경 구성

초급자는 개발 환경에서 어려움을 겪는 경우가 많아서 Google의 Colab(https://colab.research.google.com/)에서 학습을 진행하시길 권해드립니다. Colab은 Google 계정만 있으면 바로 사용할 수 있고, Python과 pandas가 이미 설치되어 있어서 바로 실습을 진행할 수 있습니다. 또한 Colab은 GPU를 지원하기 때문에 딥러닝 관련 학습도 가능합니다. Colab을 사용해서 데이터 분석을 진행해보고 향후에 본인의 PC에 개발 환경을 구성해도 됩니다. 첫시작을 고통스럽게 해야 할 이유는 없습니다.

학습 및 모든 과정을 자신의 컴퓨터에서 진행해야 하는 분들도 있습니다. 예를 들어, VS Code 편집기를 사용하고 싶거나 데이터 자체를 Colab에 업로드를 할 수 없는 경우도 있습니다. 데이터가 대외비인지 아닌지 구별이 안되는 상황에서 Colab이나 클라우드 환경에서 데이터 분석을 진행하는 경우도 주의해야 합니다. 이런 경우 번거롭더라도 자신이 사용하는 PC나 노트북에 개발 환경을 구성하는 것을 추천합니다.

해당 책의 초고로 사용되었던 강의에선 Anaconda(혹은 Mini Conda)를 주로 활용하였습니다. 당시보다는 개발 환경 구성이 쉬워졌지만 여전히 PC나 노트북에 개발 환경을 구성하는 것이 쉽진 않습니다. 가능하면 YouTube나 AI 등을 활용하여 본인이 사용하는 운영체제(Windows, macOS, Linux 등)에 맞게 개발 환경을 구성하시길 권해드립니다.

먼저, 자신의 컴퓨터에 데이터 분석 환경을 구성하기 위해서 다음과 같은 절차를 간략하게 소개하도록 하겠습니다.

  1. Python 3.14 이상을 설치합니다.
  2. pip를 사용해서 pandas를 포함한 필요한 라이브러리를 설치합니다.
  3. 텍스트 편집기인 VS Code를 설치합니다.
  4. VS Code에 Python 코드 작성을 도와줄 확장 프로그램을 설치합니다.
  5. 정상적으로 작동을 하는지 확인합니다.

1.2.1 Python 설치

Python 3.14 이상 버전을 설치하는 것을 권장합니다. pandas 3.x는 Python 3.11 이상 버전을 지원하기 때문에 최소한 자신의 PC에 3.11 이상 버전이 설치되어 있어야 합니다. 최신 버전을 설치한 경우 PyTorch 등 딥러닝 라이브러리 지원이 원활하지 않을 수 있기 때문에, 본인이 Python으로 어떤 작업을 해야하는지 그리고 그 작업을 위해서 사용하는 패키지나 라이브러리에서 권하는 Python 버전을 확인해보는 것을 권장합니다. 공용 컴퓨터실이나 본인이 관리하는 컴퓨터가 아닌 경우에 Python 3.11 이상 버전이 설치되어 있다면 그대로 사용하셔도 됩니다.

먼저 터미널 창(cmd, PowerShell, terminal, WSL, Anaconda Prompt 및 iterm)을 열고 아래 명령어를 실행하여 현재 설치된 Python 버전을 확인하세요. 아래와 같이 버전(3.14.6)이 확인된다면 별도의 Python을 설치하지 않으셔도 됩니다.

$ python --version
Python 3.14.6

만약 설치가 되어있지 않다면 다음과 유사한 메시지가 출력될 것입니다. (운영체제에 따라서 약간의 차이가 있습니다.)

'python'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램 또는 배치 파일이 아닙니다.

1.2.1.1 윈도우에 Python 설치

윈도우는 공식 홈페이지(www.python.org)에 가셔서 3.14 버전을 다운로드해서 설치하시면 됩니다. 앞서도 말씀드렸다 싶이, PyTorch 등 딥러닝 라이브러리까지 학습을 고려한다면 Python 3.14 버전을 설치하는 것을 권장합니다. 물론 pandas만 사용한다면 Python 3.11 이상이면 충분합니다.

Python 다운로드

설치 파일을 다운로드 하시고, 해당 파일을 실행하면 설치 화면이 나타납니다(버전은 다를 수 있음). 설치시 몇가지 선택사항을 확인 하실 수 있는데, PATH 추가를 체크(‘Add Python to PATH’)하고 설치를 진행하시면 됩니다. 나머지는 그대로 진행하셔도 됩니다.

Python 설치 선택사항

1.2.1.2 macOS에 Python 설치

macOS에 Python이 설치되어 있습니다. 하지만 Python 버전이 낮고, 시스템 Python을 사용하는 것을 권장하지 않습니다. 그래서 macOS 사용자도 가능하면 별도의 Python을 설치하는 것을 권장합니다. 공식 홈페이지에서 3.14 버전을 다운로드해서 설치하시면 됩니다. 윈도우와 다르게 ‘pkg’ 파일이 다운로드 되는데, 해당 파일을 Applications 폴더로 드래그하여 설치를 진행하세요.

노트

macOS에서 개발을 하시는 많은 분들의 경우 ’brew’를 사용해서 Python을 설치하는 경우가 많습니다. 따라서 macOS에서 개발 환경을 좀 더 원활하게 구성하고 싶으시면 brew를 설치하고 사용하는 방법을 익혀두시는 것이 좋습니다. brew 설치는 https://brew.sh를 참고하시면 됩니다.

1.2.1.3 Linux에 Python 설치

대부분의 ‘Linux’ 배포판에 Python이 기본적으로 설치되어 있습니다. 어떤 배포판인지 따라서 설치된 Python 버전이 다를 수 있습니다. 사용하시는 배포판에서 Python 버전을 확인하세요. Python 3.11 이상이 설치되어 있다면 그대로 사용하셔도 됩니다.

노트

데비안 계열의 리눅스 사용자라면 우분투(Ubuntu)나 민트(Mint)를 사용하시는 분일 것입니다. macOS나 윈도우와 다르게 ’apt’라는 패키지 관리자를 사용해서 설치를 진행해야 합니다. 그리고 pip 등 몇가지 패키지가 설치되어 있지 않은 경우가 많습니다. 따라서, 리눅스 사용자부들은 자신의 배포판에 맞는 Python 설치 방법을 익혀두는 것이 좋습니다.

1.2.2 pandas 및 라이브러리 설치

pandas는 Python 패키지 인덱스(PyPI)를 통해 쉽게 설치할 수 있습니다. pip 명령어를 사용해서 관련 패키지를 설치할 수 있습니다. 터미널(terminal)이나 명령 프롬프트(cmd, powershell)에서 다음 명령어를 실행합니다. 필요한 몇가지 라이브러리를 한 번에 설치하도록 하겠습니다. 아래 명령어를 터미널이나 명령 프롬프트에 입력하시면 됩니다.

$ pip install pandas seaborn scikit-learn duckdb openpyxl jupyterlab

각 패키지의 역할은 다음과 같습니다.

패키지 역할
pandas 정형 데이터 분석 도구
pyarrow Arrow 메모리 포맷 구현체
matplotlib 시각화 라이브러리
seaborn matplotlib 기반 통계 그래프 라이브러리
scipy 과학 계산용 라이브러리
statsmodels 통계 모델링
scikit-learn 머신러닝 라이브러리
duckdb 분석용 SQL 엔진
openpyxl 엑셀 파일 읽기 및 쓰기
jupyterlab 분석 과정을 기록하고 공유하는 노트북 환경

pandas를 설치하면 numpy와 pyarrow는 의존성으로 함께 설치됩니다.

노트

Python을 주력으로 사용하고 계시면, 저장소는 uv로 환경을 관리하는 것이 좋습니다. uv는 가상환경을 동일하게 관리할 수 있기 때문에, 재현성 문제를 줄일 수 있습니다.

설치가 완료되면 Python에서 제공하는 REPL을 사용해서 pandas를 사용 할 수도 있지만, 가능하면 VS Code와 같은 IDE를 사용해서 편리하게 실습을 진행할 수 있도록 환경을 구성하는 것을 권장합니다. 간단한 코드를 작성하고, 실행해야 하기 때문에 Python 코드 편집을 위해서 VS Code를 설치하겠습니다.

1.2.3 VS Code 설치

먼저 VS Code를 다운로드 해야 합니다. VS Code는 https://code.visualstudio.com/download에서 다운로드 받을 수 있습니다. 운영체제와 하드웨어에 따라 다운로드 받는 파일이 약간의 차이가 있습니다. 본인의 하드웨어 환경과 운영체제를 고려해서 다운로드 하시고 설치를 시작하세요.

VS Code 다운로드

윈도우 사용자의 경우 설치시 몇가지 선택사항을 확인할 수 있습니다. 아래 이미지와 같이 ’Add “Open with Code”’를 체크하고 설치를 진행하세요. 이 옵션을 체크하면 윈도우 탐색기에서 원하는 폴더를 마우스 우클릭하면 ’Open with Code’를 선택할 수 있습니다.

VS Code 설치

macOS와 Linux는 윈도우와 유사한 방법으로 VS Code를 설치하시면 됩니다. 해당 운영체제의 경우 VS Code 설치 매뉴얼을 참고하시면 됩니다. 특히, Linux 사용자의 경우 어떤 배포판을 사용하시는지 반드시 확인하세요. 설치가 끝나면 VS Code를 실행하세요.

1.2.4 확장 프로그램 설치

VS Code를 실행하면 왼쪽에 있는 ‘Extensions’(확장) 아이콘을 클릭하고 ’Python’을 검색하여 Python 확장 프로그램을 설치하세요. 설치가 끝나면 ’Jupyter’을 검색하여 Jupyter 확장 프로그램을 설치하세요. 설치시 가능하면 MS(Microsoft)에서 제공하는 Python과 Jupyter 확장 프로그램만 설치하세요. 설치해야 하는 플러그인은 아래와 같습니다.

Python VS Code Extensions

Jupyter VS Code Extensions

설치가 종료되면 VS Code를 종료하고, 다시 실행하시면 됩니다.

1.2.5 실행환경 확인

VS Code를 실행하고, ‘Open Folder’를 클릭하여 프로젝트를 진행할 폴더를 선택하세요. 홈(혹은 user) 폴더에 works 폴더를 생성하고 해당 폴더를 선택하시면 VS Code에서 해당 폴더를 프로젝트 폴더로 인식하게 됩니다. 이후 ’hello.ipynb’ 파일을 생성하시고, 왼쪽 상단에 있는 ‘Kernel(커널)’을 클릭하여 VS Code에서 사용하고자 하는 Python을 선택하세요. 아래와 같이 첫번째 셀을 선택하거나, 만드세요. 셀은’+’ 버튼을 클릭하여 추가할 수 있습니다.

print("Hello, World!")

해당 셀을 선택하고, ‘Ctrl + Enter’ 혹은 ‘Shift + Enter’ 키를 눌러서 셀을 실행하세요. 셀을 실행하면 해당 셀에 있는 코드가 실행되고, 결과가 출력됩니다. 혹은 상단에 위치한 ‘Run(실행)’ 버튼을 클릭하여 셀을 실행할 수 있습니다. 셀 하단에 “Hello, World!”가 출력되면 성공입니다.

pandas 및 기타 설치된 패키지의 버전을 확인하기 위해서 아래와 같은 코드를 복사해서 셀에 입력하시고 실행해보세요.

import pandas as pd
import seaborn as sns
import duckdb
import pyarrow as pa
import openpyxl as xl

print("pandas 버전:", pd.__version__)
print("Seaborn 버전:", sns.__version__)
print("DuckDB 버전:", duckdb.__version__)
print("PyArrow 버전:", pa.__version__)
print("OpenPyXL 버전:", xl.__version__)

1.2.6 한글 설정

아래 코드는 pandas로 데이터 분석을 할 때 항상 사용하게 될 코드의 일부분입니다. 시각화 관련하여 한국어 설정을 위해서 아래와 같은 코드를 작성하는 것을 권장합니다. 또한 pandas 3.x이 제대로 설치되었는지 확인하는 코드도 포함되어 있습니다.

한글 폰트 설정은 시각화에서 한글이 깨지지 않도록 하는 중요한 단계입니다. Windows 시스템에서는 “Malgun Gothic”, macOS나 Linux에서는 “AppleGothic”을 사용합니다. 또한 ‘axes.unicode_minus’를 False로 설정하면 마이너스 기호가 깨지는 문제를 방지할 수 있습니다. Linux 사용자의 경우 자신의 배포판에 한글 폰트가 설치되어 있지 않다면 별도의 한글 폰트를 설치해야 합니다. 예를 들어, Ubuntu의 경우 ’fonts-nanum’ 패키지를 설치하시면 됩니다. 리눅스 사용자는 자신의 배포판에 따라 폰트 설치 방법이 다를 수 있습니다.

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import platform

# 운영체제별 한글 폰트 설정
if platform.system() == "Darwin":
    plt.rcParams["font.family"] = "Apple SD Gothic Neo"
elif platform.system() == "Windows":
    plt.rcParams["font.family"] = "Malgun Gothic"
else:
    plt.rcParams["font.family"] = "NanumGothic"

plt.rcParams["axes.unicode_minus"] = False

# 시각화 테스트
pd.Series([-1, 1]).plot(title="안녕하세요!")
plt.show()

해당 코드를 실행하면 아래와 같이 한글이 제대로 표현된 그래프가 출력됩니다.

한글이 올바르게 출력되는 그래프

제가 일했던 대부분의 조직은 동일한 운영체제를 기반으로 개발 환경을 구성하긴 하지만, 데이터 분석팀과 개발팀의 경우 환경이 다를 수 있습니다. 그리고 상황에 따라서, 개발 환경 및 분석 도구가 서로 다를 수도 있습니다. 따라서 데이터 분석에 관련된 코드는 항상 재현 가능하도록 유지하는 것을 권장합니다. 또한 데이터 분석 결과를 공유하기 위해서는 항상 한글이 제대로 표현되는 환경을 구성하는 것이 중요합니다.