본문 바로가기
데이터 분석

시계열 데이터 처리

by anion 2023. 8. 19.

날짜 타입으로 변환

pd.to_datetime(날짜데이터, format = '입력되는 날짜 형식')

-> date = pd.Series(['03-01-2023', '03-02-2023', '03-03-2023'])
date = pd.to_datetime(date, format = '%d-%m-%Y') #입력받은 날짜 데이터 형식이 '%d-%m-%Y'!

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

# 전날 매출액 열을 추가합시다.
temp['Amt_lag'] = temp['Amt'].shift() #default = 1
# 전전날 매출액 열을 추가.
temp['Amt_lag2'] = temp['Amt'].shift(2) # 2행 shift

 

rolling.집계함수

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

  • rolling(n) :
    • n 기본값은 1
    • min_periods : 최소 데이터수

# 7일 이동평균 매출액을 구해 봅시다.
temp['Amt_MA7_1'] = temp['Amt'].rolling(7).mean()
temp['Amt_MA7_2'] = temp['Amt'].rolling(7, min_periods = 1).mean() #하나라도 있으면 평균을 구해라

 

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

temp['Amt_D1'] = temp['Amt'].diff() #현재에서 이전데이터 빼기
temp['Amt_D2'] = temp['Amt'].diff(2) #현재에서 전전값 빼기

 

Q1. 전날 매출액
data['Groc_lag']=data['Grocery'].shift()
Q2. 7일 전(전주 동 요일) 매출액
data['Groc_lag7'] = data['Grocery'].shift(7)
Q3. 3일 이동평균 매출액
data['Groc_MA3'] = data['Grocery'].rolling(3).mean()
Q.4 전날대비 매출액 증감여부 (증가 1, 감소 -1, 동일 0)
data['Groc_diff'] = data['Grocery'].diff()
data['Groc_diff'] = np.where(data['Groc_diff']<0,-1,np.where(data['Groc_diff']>0,1,0))
# data.loc[data['diff'] >0 , 'diff'] = 1 
# data.loc[data['diff'] ==0 , 'diff'] = 0 
# data.loc[data['diff'] <0 , 'diff'] = -1


 

'데이터 분석' 카테고리의 다른 글

데이터 전처리  (1) 2023.10.29
시각화 라이브러리  (0) 2023.08.20
데이터 축소 - 특징 선택  (0) 2023.08.02
데이터 변환 - 특징 생성  (0) 2023.08.02
데이터 변환 - 정규화, 구간화  (0) 2023.08.02