DateTimeIndex에서 날짜가 속한 분기(Quarter)를 추출하려면 DateTimeIndex.quarter 속성을 사용하면 됩니다. 이 속성은 각 날짜가 연중 몇 번째 분기에 해당하는지를 정수 값으로 반환합니다.
필요한 라이브러리 불러오기
먼저 pandas 라이브러리를 임포트합니다.
import pandas as pd
DatetimeIndex 생성하기
이제 시작 시점부터 총 6개의 기간(periods=6)을 가지며, 빈도(freq)는 '2M', 즉 두 달 단위로 설정된 DatetimeIndex를 생성해 보겠습니다. 타임존은 호주 시드니(Australia/Sydney)로 지정합니다.
datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=6, tz='Australia/Sydney', freq='2M')생성된 DatetimeIndex의 빈도를 확인하려면 다음과 같이 출력할 수 있습니다.
print("DateTimeIndex frequency...\n", datetimeindex.freq)날짜의 분기를 구하는 코드는 아래와 같습니다.
print("\nGet the quarter of the date..\n", datetimeindex.quarter)결과는 다음과 같은 분기 기준에 따라 계산됩니다.
- 1분기: 1월 1일 ~ 3월 31일
- 2분기: 4월 1일 ~ 6월 30일
- 3분기: 7월 1일 ~ 9월 30일
- 4분기: 10월 1일 ~ 12월 31일
전체 예제 코드
지금까지 설명한 내용을 하나의 완전한 코드로 정리하면 다음과 같습니다.
import pandas as pd
# periods=6, freq='2M'으로 DatetimeIndex 생성 (두 달 단위)
# 타임존은 Australia/Sydney로 지정
datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=6, tz='Australia/Sydney', freq='2M')
# 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("\nGet the quarter of the date..\n", datetimeindex.quarter)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DateTimeIndex... DatetimeIndex(['2021-10-31 02:30:50+11:00', '2021-12-31 02:30:50+11:00', '2022-02-28 02:30:50+11:00', '2022-04-30 02:30:50+10:00', '2022-06-30 02:30:50+10:00', '2022-08-31 02:30:50+10:00'], dtype='datetime64[ns, Australia/Sydney]', freq='2M') DateTimeIndex frequency... <2 * MonthEnds> Get the quarter of the date.. Int64Index([4, 4, 1, 2, 2, 3], dtype='int64')
결과 해석
출력된 결과를 살펴보면, 생성된 날짜들이 각각 어떤 분기에 속하는지 확인할 수 있습니다. 예를 들어 첫 번째 날짜인 2021년 10월 31일은 4분기, 2022년 2월 28일은 1분기, 2022년 4월 30일은 2분기에 해당함을 알 수 있습니다. 이처럼 quarter 속성을 활용하면 시계열 데이터에서 분기별 집계나 필터링 작업을 손쉽게 수행할 수 있습니다.