kt aivle

[Python] 시계열 데이터 처리

튼튼한장 2024. 6. 2. 20:50

시계열 데이터란

행과 행에 시간의 순서(흐름)가 있고

행과 행의 시간 간격이 동일한 데이터

 

날짜 요소 추출 dt

# df의 Date열의 날짜를 원하는 대로 추출
df['Date'].dt.year # 연도
df['Date'].dt.month # 월
df['Date'].dt.day # 일
df['Date'].dt.weekday # 요일
df['Date'].dt.day_name() # 요일 이름
df['Date'].dt.isocalendar().week # 누적 주차

 

시간에 따른 흐름 추출하기: Time Lag

.shift()

시계열 데이터에서 시간의 흐름 전후로 정보를 이동시킬 때 사용

df['Amt_lag'] = temp['Amt'].shift() # default = 1
# 전날 매출액을 추가한다.

df['Amt_lag2'] = temp['Amt'].shift(2)
# 전전날 매출액을 추가한다.

df['Amt_lag_1'= = temp['Amt'].shift(-1)
# 다음날 매출액 열을 추가한다.

 

rolling + 집계함수

시간의 흐름에 따라 일정 기간 동안 평균을 이동하면서 구하기

rolling(n)

n의 기본값은 1

min_periods: 최소 데이터 수

df['Amt_1'] = df['Amt'].rolling(7).mean()
# Amt열의 7개 평균을 구한다. 7개가 되지 않는 경우 NaN으로 표시

df['Amt_2'] = df['Amt'].rolling(7, min_periods = 1).mean()
# Amt열의 7개 평균을 구한다. 최소 데이터수는 1개이므로 NaN값이 표시되지 않는다.

 

 

diff

특정 시점 데이터, 이전 시점 데이터와의 차이 구하기

 

df['Amt1'] = df['Amt'].diff()
# default = 1

df['Amt2'] = df['Amt'].diff(2)
# 현재 행보다 2행 앞의 데이터와의 차이를 구한다.