특정 기간이 흐른 뒤의 날짜를 반환하는 방법
예제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
'판다스 > 판다스 팁' 카테고리의 다른 글
[pandas] read_csv 함수로 데이터 프레임 부를 때 파일의 encoding 방식 알아내기 (0) | 2023.11.11 |
---|---|
[pandas] csv 파일에서 따옴표 안의 콤마(,)는 seperator로 적용하고 싶지 않을 때 (0) | 2023.09.05 |
집계 결과를 열로 만드는 방법 (0) | 2023.08.30 |
Timedelta 자료형을 실수(float)로 바꾸는 방법 (0) | 2023.08.30 |
apply를 무분별하게 쓰면 안되는 이유 (0) | 2023.08.25 |