개요
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 속성을 활용하면 시계열 데이터에서 특정 날짜가 분기 시작일에 해당하는지 손쉽게 필터링하거나 판별할 수 있습니다.