[KT Aivle AI] 2주차. 시계열 데이터 처리

hyowon·2024년 3월 19일
0

KtAivle

목록 보기
7/39

1. 개요

주제 : 시계열 데이터 및 시각화 처리

2. 날짜 요소 추출

- 생각보다 많은 부분에서 이를 사용한다.

(1) 날짜 타입으로 변환

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

✍ 입력

data['Date'] = pd.to_datetime(data['Date'])

date = pd.Series(['03-01-2023', '03-02-2023', '03-03-2023'])
date = pd.to_datetime(date)
date
✍ 출력
0   2023-03-01
1   2023-03-02
2   2023-03-03
dtype: datetime64[ns]

(2) 날짜 요소 추출

✍ 입력

# 연도
date.dt.year

# 월
date.dt.month

# 일
date.dt.day

# 요일
date.dt.weekday

# 요일 이름
date.dt.day_name()

[문1] data의 Date는 이미 날짜 타입으로 변환되어 있습니다.
다음의 항목을 열로 추가하시오.

  • 요일(이름)
  • 주차

✍ 입력

data['Weekday'] = data['Date'].dt.day_name()
data['Week'] = data['Date'].dt.week
data.head()

3.시간에 따른 흐름 추가하기

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

(1) shift -중요!! (-1 하면 데이터 앞으로 1하면 뒤로!)

✍ 입력

temp = data.loc[:,['Date','Amt']]

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

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

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

temp.head()

(2) 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()
temp.head(10)

(3) diff

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

✍ 입력

temp['Amt_D1'] = temp['Amt'].diff()
temp['Amt_D2'] = temp['Amt'].diff(2)
temp.head(10)

profile
안녕하세요. 꾸준히 기록하는 hyowon입니다.

0개의 댓글