데이터분석/전처리

pandas dataframe 시계열 관련 함수

씩씩한 IT블로그 2020. 12. 16. 20:57
반응형

1. 시계열데이터로 바꾸는 함수

dataFrame.asfreq('단위',meathod='결측치채우는방법')

# 단위
#'D':day, 'W':week, 'H':Hour

# meathod
# 'ffill' or 'pad' : forward fill, 앞에것으로 뒤에것을 채우는것
# 'bfill' or 'backfill' : 뒤에것으로 앞에것을 채우는것

 

2. 시계열데이터에서 결측치 확인하기 

<example>

raw_all

 

#결측치가 있는 값은 True를 반환한다
raw_all.asfreq('H').isnull().sum(axis=1)>0

 

#결측치가 있는 행을 반환한다
raw_all.asfreq('H')[raw_all.asfreq('H').isnull().sum(axis=1) > 0]

 

3. 시계열 분해(추세, 계절성, 잔차)

import statsmodels.api as sm
sm.tsa.seasonal_decompose({분해요소], model={분해방법})
# {분해요소} : DataFrame의 column

# {분해방법} : 'additive'=(추세+계절성+잔차), 'multiplicative'=(추세*계절성*잔차)
# 분해 방법은 상황에 따라 적절히 판단한다.

 

4. 이동평균선(rolling)

x이동평균선이란 (t-x)~x의 함숫값의 평균을 f(x)의 값으로 하는것을 의미한다.

<example>

raw_all[['count']]

시간(Hour)단위의 시계열 그래프

 

raw_all[['count']].rolling(24).mean()[:50] #24시간 이동평균을 구한다

 

5. 차이값 확인(diff)

앞의 값과 차이값을 확인할 수 있다. 4.이동평균선에서 사용한 row_all 데이터프레임을 diff함수를 이용하여 바꾸면 아래와 같다

raw_all[['count']].diff()

 

6. 시간정보 추출

DataFrame.datetime.dt.{추출하고싶은요소}

#추출하고싶은요소 : month, day, hour, dayofweek, quater...

<example>

raw_all.datetime

 

raw_all.datetime.dt.month

 

7. 단위시간만큼 이동시키기

 

<example>

raw_all['count']

 

raw_all['count'].shift(1) #1단위만큼 아래로

 

 

raw_all['count'].shift(-1) #1단위만큼 위로

 

반응형