정지용
기술스택 목록
데이터

pandas

프로젝트 1에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.

이 기술은 무엇인가요?

표 형태의 데이터를 빠르게 다루고 분석할 수 있게 해주는 파이썬 라이브러리

pandas는 엑셀 표나 SQL 테이블처럼 행과 열로 구성된 데이터를 파이썬에서 손쉽게 불러오고, 가공하고, 분석할 수 있도록 만든 오픈소스 라이브러리입니다. 순수 파이썬 리스트나 딕셔너리로 표 형태 데이터를 다루면 반복문이 많아지고 속도도 느려지는 문제를 해결하기 위해 만들어졌습니다. 대용량 수치 계산에 강한 NumPy를 기반으로 하면서, 결측치 처리·필터링·그룹 집계·시계열 처리 같은 데이터 분석에 필요한 기능을 함수 몇 줄로 처리할 수 있게 해줍니다.

이럴 때 사용합니다

  • CSV, 데이터베이스 등에서 가져온 표 형태 데이터를 정리하고 분석해야 할 때
  • 시계열 데이터를 구간별로 묶어 이동평균 등 지표를 계산해야 할 때
  • 결측치나 중복값 처리 등 데이터 전처리를 반복적으로 수행해야 할 때
  • 반복문 없이 대량의 행 단위 연산을 빠르게 처리하고 싶을 때

핵심 개념

DataFrame
행과 열로 이루어진 2차원 표 구조로, pandas의 핵심 데이터 타입입니다. 각 열은 서로 다른 자료형을 가질 수 있습니다.
Series
DataFrame의 한 열에 해당하는 1차원 데이터 구조로, 인덱스와 값의 쌍으로 이루어져 있습니다.
Index
각 행을 식별하는 라벨로, 숫자뿐 아니라 날짜·문자열도 인덱스로 사용할 수 있어 데이터 조회와 정렬을 편리하게 합니다.
vectorized operation
반복문 없이 열 전체에 연산을 한 번에 적용하는 방식으로, 파이썬 반복문보다 빠르게 동작합니다.
groupby
특정 기준으로 데이터를 묶은 뒤 합계·평균 등 집계 연산을 적용하는 기능으로, SQL의 GROUP BY와 유사합니다.
resample
시계열 데이터를 다른 시간 단위(분·시간·일 등)로 재구성해 집계하는 기능입니다.

캔들 데이터에서 이동평균 계산하기

시간순 종가 데이터를 DataFrame으로 만들고, rolling 함수로 3구간 이동평균을 계산하는 예시입니다.

Python
import pandas as pd

# 캔들(OHLCV) 데이터를 DataFrame으로 구성
df = pd.DataFrame({
    "time": pd.date_range("2024-01-01", periods=5, freq="1min"),
    "close": [100, 102, 101, 105, 107]
})

df = df.set_index("time")

# 3개 구간 이동평균(MA) 계산
df["ma3"] = df["close"].rolling(window=3).mean()

print(df)

처음 쓸 때 흔한 함정

  • 원본을 바꾼다고 생각하고 연산했지만 실제로는 복사본이 반환되어 반영이 안 될 수 있습니다.
  • 행 단위로 반복문(for/apply)을 돌리면 벡터화 연산보다 훨씬 느려집니다.
  • 인덱스를 제대로 설정하지 않으면 시계열 정렬이나 병합 시 예상과 다른 결과가 나올 수 있습니다.

위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.

프로젝트별 활용 방식

위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.

함께 사용한 기술

위 프로젝트들에서 같이 쓰인 다른 기술입니다.