본문 바로가기
판다스/판다스 팁

[pandas] 날짜(timestamp)에서 특정 기간이 흐른 뒤의 날짜를 반환하는 방법

by 김판다t 2023. 9. 5.

특정 기간이 흐른 뒤의 날짜를 반환하는 방법

 

예제1

 

import pandas as pd
today = '2023-09-05'
today_dt = pd.to_datetime(today)
today_dt

 

today는 2023-09-05의 날자를 뜻하는 문자열이고

today_dt는 2023-09-05를 datetime 자료형으로 바꾼 것이다

 

2023-09-05로 부터 4개월 뒤의 날짜를 datetime 자료형으로 반환해보자

 

이럴 때는 DateOffset 함수를 이용하면 손쉽게 가능하다

 

today_dt + pd.DateOffset(months=4)

 

output:

 

Timestamp('2024-01-05 00:00:00')

 

4개월 뒤인 2024-01-05에 해당하는 timestamp를 반환한다

 

 

15일 뒤의 날짜를 원한다면 DateOffset 함수에 days 인자를 사용하면 된다

 

today_dt + pd.DateOffset(days=15)

 

output:

 

Timestamp('2023-09-20 00:00:00')

 

15일 뒤인 2023-09-20에 해당하는 timestamp가 반환되었다

 

 

주의

 

days, months 같이 인자들은 명사로 복수형이다. 단수로 쓰면 다른 결과가 나온다

 

days인자 대신 day 인자를 사용해보자

 

 

today_dt + pd.DateOffset(day=15)

 

output:

 

Timestamp('2023-09-15 00:00:00')

 

15일 뒤가 아닌 날짜를 15일로 만드는 기능을 한다.

 

이또한 유용한 기능이지만, 15일 후를 원할 때는 원치 않는 결과가 반환되는 것이니 주의하자.

 

 


시리즈 전체에도 적용할 수 있다

 

예2

 

import pandas as pd
data = ['20161011', '20161101', '2017-12-03']
s = pd.Series(pd.to_datetime(data))

 

s

 

0   2016-10-11
1   2016-11-01
2   2017-12-03
dtype: datetime64[ns]

 

 

 

s의 날짜를 전부 3개월 후로 바꾸고 싶다면 아래와 같은 코드로 가능하다

 

s + pd.DateOffset(months=3)

 

 

output:

 

0   2017-01-11
1   2017-02-01
2   2018-03-03
dtype: datetime64[ns]

 

 

마찬가지로 인자가 month가 아닌 months임을 주의한다

 

 

 

 

 

 

유튜브에서 판다스 강의 중입니다

 

https://www.youtube.com/@KimPandas