[파이썬] pandas 시계열 데이터의 이동 (tshift)

Pandas는 파이썬의 데이터 분석과 조작을 위한 강력한 도구입니다. Pandas의 시계열 데이터는 특히 데이터 분석과 예측에 많이 사용되며, 이동 (shifting)을 통해 데이터를 조작하는 기능을 제공합니다. 이 중에서도 tshift 함수는 시계열 데이터를 특정 시간 주기로 이동시키는 기능을 제공합니다.

tshift 함수

SeriesDataFrame 객체의 tshift 함수를 사용하면 해당 시계열 데이터를 지정한 시간 주기만큼 이동시킬 수 있습니다. 이동된 데이터는 기존 데이터와 같은 인덱스를 가지고 있으며, 이동된 값이 없을 경우 빈 값 (NaN)으로 채워집니다.

Series 객체의 tshift 함수는 다음과 같이 사용할 수 있습니다:

series.tshift(periods, freq)

periods는 이동시킬 주기를 의미하며, 양수일 경우 데이터를 미래로 이동시키고, 음수일 경우 과거로 이동시킵니다. freq는 이동시킬 주기의 단위를 지정하는 옵션입니다. 기본값은 None으로, 인덱스의 주기를 따릅니다.

DataFrame 객체의 경우, 열을 지정하여 각 열에 대해 이동을 수행할 수 있습니다. 예를 들어, df['column'].tshift(periods, freq)와 같이 사용할 수 있습니다.

예제

다음은 tshift 함수를 사용한 예제 코드입니다.

import pandas as pd

# 시계열 데이터 생성
index = pd.date_range('2022-01-01', periods=5, freq='D')
series = pd.Series([10, 20, 30, 40, 50], index=index)

# 데이터 이동 (1일 미래로 이동)
shifted_series = series.tshift(1)

# 결과 출력
print(shifted_series)

위 코드에서는 2022년 1월 1일부터 5일간의 일별 데이터를 생성하고, 이를 시리즈 객체로 저장합니다. 그 후, 해당 시리즈를 1일 미래로 이동시키는 작업을 수행하고 그 결과를 출력합니다.

실행 결과는 다음과 같습니다:

2022-01-02    10.0
2022-01-03    20.0
2022-01-04    30.0
2022-01-05    40.0
2022-01-06    50.0
Freq: D, dtype: float64

결과를 보면, 기존 데이터의 각 값이 1일씩 뒤로 이동되고, 첫 번째 값은 빈 값 (NaN)으로 채워진 것을 확인할 수 있습니다.

정리

Pandas의 tshift 함수를 사용하면 시계열 데이터를 특정 시간 주기로 이동시킬 수 있습니다. 이를 통해 데이터의 이동 패턴을 분석하거나 예측에 활용할 수 있습니다. 위 예제를 바탕으로 원하는 주기와 방향에 맞게 데이터를 이동시키고, 분석 결과를 통해 의미 있는 정보를 도출해내는 것이 중요합니다.