[30일차]시계열 제어 - 날짜와 시간(DatatimeIndex)

김준석·2024년 1월 8일

pd.DatetimeIndex()


**pd.DatetimeIndex() 간단 실습**

**DatatimeIndex 를 만들어보자**

먼저 날짜 리스트를 만들었다.

data_list = ['2023-12-01', '2023-12-02', '2023-12-03', '2023-12-04']

1.to_datetime 를 활용

그리고 이전 글에서 말했듯이 to_datetime 메소드를 이용해 **DatatimeIndex** 형식으로 만들 수 있다.

pd.to_datetime(data_list)

출력값:DatetimeIndex(['2023-12-01', '2023-12-02', '2023-12-03', '2023-12-04'], dtype='datetime64[ns]', freq=None)

2.pd.DatetimeIndex 를 활용

pd.DatetimeIndex(data_list)

출력값 : DatetimeIndex(['2023-12-01', '2023-12-02', '2023-12-03', '2023-12-04'], dtype='datetime64[ns]', freq=None)

동일하게 출력된다.

12월을 한번에 DatetimeIndex로 만들기

날짜 인덱스를 만들때 위 처럼 날짜 하나하나를 넣어서 만들어야 되나?

그건 아니다.

이는 pd.date_range() 메소드를 이용하면 쉽게 만들 수 있다.

start_date = '2023-12-01'
end_date = '2023-12-31'
pd.date_range(start_date, end_date)

date_range(시작일, 마지막일) 을 지정해주면 아래처럼 그 사잇값이 DatetimeIndex 로 출력된다.

date_range() 인자값

date_range()의 freq= : str, Timedelta, datetime.timedelta, or DateOffset, default 'D'

  • 단위를 지정하여 날짜 생성
  • Y M W(주별) D H T(분) S

freq= 인자를 이용해서 일, 주, 월단위를 지정해 줄 수 도 있다.

주단위 데이터

pd.date_range(start_date, end_date,freq='W')

출력값: DatetimeIndex(['2023-12-03', '2023-12-10', '2023-12-17', '2023-12-24','2023-12-31'], dtype='datetime64[ns]', freq='W-SUN')

월요일 데이터

pd.date_range(start_date, end_date,freq='W-MON')

출력값:DatetimeIndex(['2023-12-04', '2023-12-11', '2023-12-18', '2023-12-25'], dtype='datetime64[ns]', freq='W-MON')

date_range()의 errors= : {'ignore', 'raise', 'coerce'}, default 'raise'

인자에 날짜 데이터를 잘못 넣었을 때 에러 처리 방법을 결정해줌.

  • raise
    • 잘못된 형식의 데이터가 있을 경우 ValueError를 발생
  • ignore(무시)
    • 잘못된 형식의 데이터를 무시하고 변환 시도
    • 변환할 수 없는 데이터는 그대로 유지
  • coerce(강제)
    • 잘못된 형식의 데이터를 NaT (Not a Time)로 대체
    • NaT는 누락된 날짜/시간 값을 나타내는 특수한 Datetime 객체
    • 변환할 수 없는 데이터는 NaT로 대체되므로, 모든 값을 Datetime 객체로 변환할 수 있다.

날짜가 아닌 데이터를 넣어보자

1234, 20:21 은 날짜 데이터가 아니다.

date_list = ['2000', '2001/13/02', '2022.02.03', '1234', '20:21', 1702731342736680500]
pd.to_datetime(data_list, errors='coerce')

이때 인자에 errors='coerce' 를 넣어주면 오류가 뜨는 부분은 NaT로 결측처리를 해준다.

0개의 댓글