pbj0812의 코딩 일기

[PYTHON] relativedelta 를 활용한 date_add 구현 본문

ComputerLanguage_Program/PYTHON

[PYTHON] relativedelta 를 활용한 date_add 구현

pbj0812 2021. 7. 15. 00:11

0. 목표

 - relativedelta 를 활용한 date_add 구현

1. 실습하기

 1) library 호출

import pandas as pd
from dateutil.relativedelta import relativedelta

 2) 데이터 프레임 생성

df = pd.DataFrame({'id' : [1, 2, 3, 4, 5], 
                  'date' : ['2021-01-01 11:11:11', '2021-02-01 11:11:11', '2021-01-03 11:11:11', '2021-04-10 11:11:11', '2021-05-01 11:11:11']})

 3) 데이터 형식 변경

df['date'] = pd.to_datetime(df['date'], format="%Y-%m-%d %H:%M:%S")

 4) 데이터 형식 확인

df.dtypes

 5) 함수 생성

  - d, m, y 에 따라 년, 월, 일 단위 별로 계산

def date_add2(x, time, time_delta):
    if time == 'd':
        return x + relativedelta(days = time_delta)
    elif time == 'm':
        return x + relativedelta(months = time_delta)
    elif time == 'y':
        return x + relativedelta(years = time_delta)
    else:
        return x

 6) 테스트

  - 1년 빼기

df['date2'] = df.apply(lambda x : date_add2(x['date'], 'y', -1), axis = 1)

2. 참고

 - [Python] timedelta(months=1) 시각에 달 빼고 더하기 연산

 - relativedelta

Comments