nada

[Pandas] 일정 시간대 생성 & 존재하지 않는 시간 확인 본문

Python/Pandas

[Pandas] 일정 시간대 생성 & 존재하지 않는 시간 확인

ds-nada 2023. 12. 25. 19:56

일정 시간대 생성 & 존재하지 않는 시간 확인:: pd.date_range

import pandas as pd

pd.date_range(
    start = None,          # str/datetime
    end = None,            # str/datetime
    periods = None,        # int
    freq = None,           # str/Dateoffset
    tz = None,             # str
    normalizae = False,    # True/False
    name = None,           # str
    closed = None          # left,right
)
  • start : 날짜 시작 시간 설정

  • end : 날짜 끝 시간 설정

  • periods : 생성할 기간 수

  • freq : 일/월/년별 지정

    • Alias Description Alias Description
      B 영업일 H 시간별
      D 일별 T 분별
      W S 초별
      M 월별 말일 ... ...
  • tz : 어느 위치의 시간 대 이름

    • 'Asia/Seoul'
    • 'Asia/Hong_Kong'
  • normalize : 시작/종료 날짜를 자정으로 정규화 여부

  • name : 인덱스 이름 설정

  • closed : 범위 포함 여부

    • 'left' : 시작 시간 제외
    • 'right' : 끝 시간 제

1. 일정 시간대 생성

  • start_day : '2010-01-01'
  • end_day : '2015-3-14'
start_day = '2010-01-01'
end_day = '2015-03-14'
pd.date_range(start = start_day, end = end_day)
DatetimeIndex(['2010-01-01', '2010-01-02', '2010-01-03', '2010-01-04',
               '2010-01-05', '2010-01-06', '2010-01-07', '2010-01-08',
               '2010-01-09', '2010-01-10',
               ...
               '2015-03-05', '2015-03-06', '2015-03-07', '2015-03-08',
               '2015-03-09', '2015-03-10', '2015-03-11', '2015-03-12',
               '2015-03-13', '2015-03-14'],
              dtype='datetime64[ns]', length=1899, freq='D')

2. DF에 존재하지 않는 시간 확인

# df date_time의 전체 시간 범위 생성
full_range = pd.date_range(start = df['date_time'].min(), end = df['date_time'].max(), freq = 'H')

# df date_time에 존재하지 않는 시간
missing_times = full_range[~ full_range.isin(df['date_time'])]
missing_times