시계열(time series) 데이터는 주식·날씨·로그·센서처럼 「시간 순서가 중요한 데이터」입니다.
Pandas는 시계열에 매우 강한 도구를 제공합니다.
DatetimeIndex.
df.index = pd.to_datetime(df["date"]) — 날짜 문자열을 datetime 인덱스로.
df.loc["2024"] — 2024년 전체.
df.loc["2024-01":"2024-03"] — 1~3월.
시간 기반 슬라이싱이 매우 자연스럽습니다.
리샘플링 — resample.
df.resample("D").sum() — 일별 합계.
df.resample("M").mean() — 월별 평균.
df.resample("H").last() — 시간별 마지막 값.
「시간 단위 변환」을 한 줄로 처리합니다.
SQL의 GROUP BY date_trunc('month', date)와 비슷한 효과.
이동 평균 — rolling.
df["price"].rolling(window=7).mean() — 7일 이동 평균.
주식 분석·노이즈 제거에 표준.
df.rolling(7).std() — 7일 이동 표준편차.
시간 차이.
df["diff"] = df["price"].diff() — 전 행과의 차이.
df["pct_change"] = df["price"].pct_change() — 변동률.
시계열 분석의 가장 흔한 지표 중 하나.
그 외 shift(시간 이동), tz_convert(시간대 변환), business day(영업일) 같은 풍부한 시계열 기능이 있습니다.
한 줄 요약
Pandas 시계열은 DatetimeIndex로 시작합니다.
resample(시간 단위 변환), rolling(이동 평균), diff/pct_change(변동) 같은 풍부한 시계열 함수로 분석을 한 줄에 처리할 수 있습니다.
더 알아볼 것
- 타임존 처리 — tz_localize·tz_convert
- Business Day — 영업일 계산
- statsmodels — 본격 시계열 분석