Pandas DateOffset이란?
Pandas에서 DateOffset() 메서드를 사용하면 특정 날짜나 시간에 원하는 만큼의 간격을 더하거나 뺄 수 있습니다. 이때 증가시키고자 하는 값(예: 개월 수, 일 수 등)을 인수로 전달하면 됩니다.
DateOffset은 날짜 연산을 유연하게 처리할 수 있어, 시계열 데이터 분석에서 매우 유용하게 활용됩니다.
필수 라이브러리 임포트
먼저 필요한 라이브러리를 임포트합니다.
from pandas.tseries.offsets import DateOffset import pandas as pd
타임스탬프 객체 생성
Pandas의 Timestamp()를 사용해 타임스탬프 객체를 설정합니다.
timestamp = pd.Timestamp('2021-09-11 02:30:55')DateOffset으로 날짜 증가시키기
이제 DateOffset을 사용해 날짜를 증가시켜 보겠습니다. 여기서는 months 파라미터를 사용해 2개월을 더합니다.
print("DateOffset...\n", timestamp + DateOffset(months=2))전체 예제 코드
다음은 위 과정을 모두 포함한 전체 코드입니다.
from pandas.tseries.offsets import DateOffset
import pandas as pd
# Pandas에서 타임스탬프 객체 설정
timestamp = pd.Timestamp('2021-09-11 02:30:55')
# 타임스탬프 출력
print("Timestamp...\n", timestamp)
# DateOffset으로 날짜 증가
# months 파라미터를 사용해 2개월 증가
print("DateOffset...\n", timestamp + DateOffset(months=2))실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timestamp... 2021-09-11 02:30:55 DateOffset... 2021-11-11 02:30:55
결과를 보면 원래 날짜인 2021년 9월 11일에서 정확히 2개월이 증가해 2021년 11월 11일이 된 것을 확인할 수 있습니다. 시간 정보(02:30:55)는 그대로 유지됩니다.
다양한 DateOffset 파라미터 활용
DateOffset은 months 외에도 다양한 단위의 날짜 연산을 지원합니다.
- years – 연도 증가/감소
- months – 개월 수 증가/감소
- weeks – 주 단위 증가/감소
- days – 일 단위 증가/감소
- hours, minutes, seconds – 시간 단위 증가/감소
예를 들어 3일을 더하고 싶다면 DateOffset(days=3), 시간을 줄이고 싶다면 DateOffset(hours=-5)처럼 음숫값을 사용할 수도 있습니다.
참고 사항
날짜를 감소시켜야 하는 경우 파라미터에 음수 값을 전달하면 됩니다. 또한 여러 파라미터를 동시에 조합하여 사용할 수도 있습니다. 예를 들어 DateOffset(months=1, days=15)와 같이 작성하면 1개월 15일을 한 번에 더할 수 있습니다.