시계열 데이터는 시간의 흐름에 따라 관측된 데이터를 말합니다. 주식 가격, 기온 변화, 웹사이트 트래픽 등 시간 축을 따라 기록된 수많은 정보들이 여기에 해당합니다.
일반적인 데이터 분석과는 다르게 시계열 데이터는 시간 순서가 매우 중요하며, 분석 방식도 그에 맞게 조정되어야 합니다. 이 글에서는 시계열 데이터의 개념부터 기본 처리 방법까지 초보자 관점에서 쉽게 설명드립니다.
● 시계열 데이터란?
시계열 데이터(Time Series Data)는 일정 간격으로 측정된 연속적인 데이터입니다. 각 데이터 포인트는 고유한 타임스탬프(timestamp)를 가지고 있으며, 시간 순서가 유지되어야 의미 있는 분석이 가능합니다.
예시로는 다음과 같은 데이터가 있습니다:
- 기상청의 시간별 기온 기록
- 일별 환율 정보
- 1분 단위 주식 가격
- 웹 로그의 접속 시간 기록
● 시계열 데이터의 특징
- 시간 순서가 매우 중요하다 (과거 → 현재 → 미래)
- 계절성(seasonality), 추세(trend), 불규칙성(noise) 등의 패턴을 가진다
- 샘플 간의 간격(시간 단위)이 일정해야 한다
● Pandas에서 시계열 데이터 다루기
Pandas는 시계열 분석에 매우 강력한 기능을 제공합니다. 가장 먼저 해야 할 일은 시간 컬럼을 datetime 타입으로 변환하는 것입니다.
import pandas as pd
# 예시 데이터
df = pd.read_csv('data.csv')
# 'date' 컬럼을 datetime으로 변환
df['date'] = pd.to_datetime(df['date'])
# 인덱스를 시간으로 설정
df.set_index('date', inplace=True)
이제 시간 기준으로 정렬하거나 리샘플링, 이동 평균 계산 등이 가능해집니다.
● 리샘플링 (Resampling)
시계열 데이터를 일별, 주별, 월별 등으로 집계할 수 있습니다.
# 월별 평균 값 계산
monthly_avg = df.resample('M').mean()
# 주별 최대 값 계산
weekly_max = df.resample('W').max()
리샘플링은 시간 단위에 따라 데이터의 밀도를 조정할 수 있어 추세 분석에 유용합니다.
● 이동 평균 (Moving Average)
잡음을 줄이고 추세를 파악하기 위해 이동 평균을 사용합니다.
# 7일 이동 평균
df['rolling_mean'] = df['value'].rolling(window=7).mean()
이렇게 하면 최근 7일간의 평균 값으로 스무딩된 데이터를 얻을 수 있습니다.
● 결측치 처리
시계열 데이터는 센서 오류, 누락 등으로 인해 결측치가 발생할 수 있습니다. 이때는 보간(interpolation)이나 이전 값으로 채우는 방식이 자주 사용됩니다.
# 보간법으로 채우기
df['value'] = df['value'].interpolate()
# 직전 값으로 채우기
df['value'] = df['value'].fillna(method='ffill')
● 시계열 시각화
시계열 데이터는 시각화를 통해 패턴을 파악하기 용이합니다.
import matplotlib.pyplot as plt
df['value'].plot(figsize=(10, 4))
plt.title("Time Series Plot")
plt.xlabel("Date")
plt.ylabel("Value")
plt.show()
● 마무리
시계열 데이터는 일상과 산업 현장에서 매우 자주 마주치는 데이터 유형입니다. 처음부터 시간 데이터를 잘 처리하는 습관을 들여두면, 이후 예측 모델이나 고급 분석에서도 큰 도움이 됩니다.
앞으로는 ARIMA, LSTM 같은 시계열 예측 기법으로도 확장해나갈 수 있으니, 기초를 확실히 다져두시기 바랍니다.
'AI > 기초_[머신러닝][딥러닝]' 카테고리의 다른 글
[인공지능][기초] 015. 수치형/범주형 변수 시각화 방법 비교 (1) | 2025.07.19 |
---|---|
[인공지능][기초] 014. 텍스트 데이터 전처리: 정규표현식과 토크나이저 (0) | 2025.07.19 |
[인공지능][기초] 012. 데이터 분석 프로젝트 구조 잡는 방법 (0) | 2025.07.19 |
[인공지능][기초] 011. EDA(탐색적 데이터 분석)란? 실전 흐름 정리 (0) | 2025.07.19 |
[인공지능][기초] 010. 데이터 정렬과 필터링: 조건문으로 다루기 (0) | 2025.07.19 |