파이썬(Python)/numpy

[Python]날짜 더하기 빼기(Numpy, Datetime)

끄적끄적아무거나 2022. 1. 11. 18:08
반응형

 

목차

     

     

     

    Numpy Dtype Datetime

     

    파이썬의 Numpy라는 라이브러리를 사용해서 데이터 종류를 Datetime으로 설정하면 날짜에 대한 처리를 파이썬에서 할 수 있습니다.

     

    정의 방법은 아래와 같습니다. 

     

    today = np.array(["2022-01-11"],dtype="datetime64[D]")

     

    Numpy에서 데이터 타입 명을 datetime64 라고 설정하면 날짜의 형태로 데이터를 저장합니다. datetime64 라고 사용하는 이유는 datetime 라는 이름은 이미 파이썬에서 사용하고 있어서 Numpy에서는 datetime64를 사용합니다.

     

    [D]는 Day를 의미하고 Day 단위로 계산이 가능 합니다.

     

     

     

     

     

    날짜 더하기 빼기 예제

     

    예제 코드>>

    import numpy as np
    
    Date1 = np.array(["2022-01-11"],dtype="datetime64[D]")
    Date2 = np.array(["2019-12-11"],dtype="datetime64[D]")
    Date3 = Date1 - Date2
    print(Date3)
    print(Date2 + Date3)

    3~4번 라인: Numpy로 날짜표기

    5번 라인: 날짜 간에 빼기

    7번 라인: 날짜 간에 빼기

     

     

    결과>>

    [762]
    ['2022-01-11']

     

     

    주석>>

    날짜 간에 뺐을 경우 Day로 표기 됩니다. 이를 다시 년 월 일로 표기 하고 싶을 경우 7번 라인과 같이 년 월 일이 들어간 Numpy 값을 더해주면 원하는 형식으로 결과를 얻을 수 있습니다.

     

    아래와 같이 문법형태를 지키지 않을 경우 에러 메세지가 발생하면서 원하는 결과를 얻지 못하므로 문법에 맞게 처리해야 합니다.

     

    잘못된 예제>>

    #잘못된 예제1
    import numpy as np
    
    Date1 = np.array(["2018-01-11"])
    Date2 = np.array(["2019-12-11"])
    Date3 = Date1 - Date2
    print(Date3)
    print(Date2 + Date3)
    
    #잘못된 예제2
    import numpy as np
    
    Date1 = np.array(["2018-01-11"],dtype="datetime[D]")
    Date2 = np.array(["2019-12-11"],dtype="datetime[D]")
    Date3 = Date1 - Date2
    print(Date3)
    print(Date2 + Date3)

     

    에러코드>>

    numpy.core._exceptions.UFuncTypeError: ufunc 'subtract' did not contain a loop with signature matching types (dtype('<U10'), dtype('<U10')) -> dtype('<U10')
    TypeError: data type 'datetime[D]' not understood

     

     

    반응형