SQL에서의 window function 기능을 파이썬에서도 구현 할 수 있다
종류 - Shift, Rolling, Expanding
Shift : Series나 DataFrame의 값들을 위나 아래로 이동(Shift) 시켜주는 함수
기존의 인덱스는 유지하고 값만 이동되며, 이동으로 인해 생기는 빈 공간은 기본으로
NaN으로 채워진다
기본 문법
- DataFrame.shift(periods=1, freq=None, axis=0, fill_value=None)
파라미터 별 설명
- periods : 이동할 기간. 양수는 아래(미래) 방향, 음수는 위(과거) 방향으로 이동
- freq : 선택 매개변수
- axis : 0이면 행 기준(기본값) , 1이면 열 기준
- fill_value : NaN대신 채울 값 지정
ex)
Rolling : pandas에서 이동 연산을 할 수 있게 해주는 기능. 주로 이동 평균, 이동 합계, 이동 표준편차등을 계산할 때 사용. shift가 밀어주는 기능이면 Rolling은 창을 이동시키며 연산을 적용하는 함수라 볼 수 있음
기본 문법
- DataFrame.rolling(window, min_periods=None, center=False).함수
파라미터 별 설명
- window : 윈도우 크기 (ex: 3이면, 3개씩 묶어서 이동 평균 등 연산)
- min_periods : 최소 데이터 개수. 이보다 적으면 None
- center : True면 중심을 기준으로 윈도우 적용. 기본은 False
ex)
Expanding : Expanding은 시작점에서 현재 위치까지의 누적 통계량을 계산하는 함수
기본 문법
- DataFrame.expanding(min_periods=1, axis=0, method='single').함수()
파라미터 설명
- min_period : 연산을 수행할 요소의 최소 갯수. 이보다 작으면 NaN
- axis : 연산할 축 방향. 0 = 행, 1 = 열
- method : 연산방식. single(한 줄씩 수행), table(전체 테이블에 대해서 롤링 수행)
기본값 single
ex)