Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas – DateTimeIndex의 날짜가 분기의 첫날인지 확인하는 방법

개요

Pandas에서 DateTimeIndex에 포함된 각 날짜가 해당 분기의 첫 번째 날(시작일)인지 확인하려면 is_quarter_start 속성을 사용하면 됩니다. 이 속성은 인덱스의 각 날짜에 대해 분기 시작일이면 True, 그렇지 않으면 False를 담은 불리언 배열을 반환합니다.

필요한 라이브러리 가져오기

먼저 pandas 라이브러리를 임포트합니다.

import pandas as pd

DatetimeIndex 생성하기

시작 시점 '2021-10-1 02:30:50'부터 기간(periods) 6개, 빈도(freq) 30일 간격으로 DatetimeIndex를 생성합니다. 시간대는 호주 애들레이드(Australia/Adelaide)로 지정했습니다.

datetimeindex = pd.date_range('2021-10-1 02:30:50', periods=6, tz='Australia/Adelaide', freq='30D')

DatetimeIndex 확인하기

생성된 DateTimeIndex를 출력해 내용을 살펴봅니다.

print("DateTimeIndex...\n", datetimeindex)

분기 시작일 여부 검사하기

is_quarter_start 속성으로 각 날짜가 분기의 첫날인지 확인합니다. 분기의 기준은 다음과 같습니다.

  • 1분기: 1월 1일 ~ 3월 31일
  • 2분기: 4월 1일 ~ 6월 30일
  • 3분기: 7월 1일 ~ 9월 30일
  • 4분기: 10월 1일 ~ 12월 31일
print("\n각 날짜가 분기의 첫날인지 확인...\n", datetimeindex.is_quarter_start)

전체 예제 코드

지금까지의 내용을 하나로 합친 전체 코드는 다음과 같습니다.

import pandas as pd

# 기간 6개, 빈도 30일 간격의 DatetimeIndex 생성
# 시간대는 Australia/Adelaide로 지정
datetimeindex = pd.date_range('2021-10-1 02:30:50', periods=6, tz='Australia/Adelaide', freq='30D')

# DateTimeIndex 출력
print("DateTimeIndex...\n", datetimeindex)

# DateTimeIndex의 빈도 출력
print("DateTimeIndex frequency...\n", datetimeindex.freq)

# 각 날짜가 분기의 첫날인지 확인
# 분기 기준은 다음과 같음:
# 1분기 = 1월 1일 ~ 3월 31일
# 2분기 = 4월 1일 ~ 6월 30일
# 3분기 = 7월 1일 ~ 9월 30일
# 4분기 = 10월 1일 ~ 12월 31일
print("\n각 날짜가 분기의 첫날인지 확인...\n", datetimeindex.is_quarter_start)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

DateTimeIndex...
DatetimeIndex(['2021-10-01 02:30:50+09:30', '2021-10-31 02:30:50+10:30',
'2021-11-30 02:30:50+10:30', '2021-12-30 02:30:50+10:30',
'2022-01-29 02:30:50+10:30', '2022-02-28 02:30:50+10:30'],
dtype='datetime64[ns, Australia/Adelaide]', freq='30D')
DateTimeIndex frequency...
<30 * Days>

각 날짜가 분기의 첫날인지 확인...
[ True False False False False False]

결과 해석

첫 번째 날짜인 '2021-10-01'은 4분기(10월 1일 ~ 12월 31일)의 시작일이므로 True가 반환되었습니다. 나머지 날짜들은 모두 분기의 시작일이 아니므로 False가 출력됩니다. 이처럼 is_quarter_start 속성을 활용하면 시계열 데이터에서 특정 날짜가 분기 시작일에 해당하는지 손쉽게 필터링하거나 판별할 수 있습니다.