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

Python Pandas – DateTimeIndex에서 월 번호 추출하기(시계열 빈도 활용)

Pandas에서 특정 시계열 빈도를 가진 DateTimeIndex에서 월 번호를 추출하려면 DateTimeIndex.month 속성을 사용하면 됩니다. 이 속성은 인덱스에 포함된 각 날짜의 월을 정수 값으로 반환하며, 1월은 1, 12월은 12에 해당합니다.

1. 필수 라이브러리 임포트

먼저 필요한 라이브러리를 임포트합니다.

import pandas as pd

2. DateTimeIndex 생성

기간(periods)은 6개월, 빈도(freq)는 'M' 즉 월(Month) 단위로 설정하고, 시간대는 호주/시드니(Australia/Sydney)로 지정하여 DatetimeIndex를 생성합니다.

datetimeindex = pd.date_range('2021-09-24 02:35:55', periods=6, tz='Australia/Sydney', freq='M')

생성된 DateTimeIndex를 출력하여 확인합니다.

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

3. 월 번호 추출

.month 속성을 호출하면 각 날짜의 월 번호가 반환됩니다. 반환 규칙은 다음과 같습니다.

  • 1월 = 1
  • 2월 = 2
  • ...
  • 12월 = 12
print("\nGetting the month number..\n", datetimeindex.month)

전체 예제 코드

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

import pandas as pd

# 기간 6개월, 빈도 'M'(월 단위), 시간대 Australia/Sydney로 DatetimeIndex 생성
datetimeindex = pd.date_range('2021-09-24 02:35:55', periods=6, tz='Australia/Sydney', freq='M')

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

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

# 월 번호 추출 (1월=1, 2월=2, ..., 12월=12)
print("\nGetting the month number..\n", datetimeindex.month)

실행 결과

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

DateTimeIndex...
DatetimeIndex(['2021-09-30 02:35:55+10:00', '2021-10-31 02:35:55+11:00',
               '2021-11-30 02:35:55+11:00', '2021-12-31 02:35:55+11:00',
               '2022-01-31 02:35:55+11:00', '2022-02-28 02:35:55+11:00'],
               dtype='datetime64[ns, Australia/Sydney]', freq='M')
DateTimeIndex frequency...
   <MonthEnd>

Getting the month number..
   Int64Index([9, 10, 11, 12, 1, 2], dtype='int64')

결과 해석

출력 결과를 보면 시작일이 2021년 9월이므로 첫 번째 월 번호는 9이며, 이후 10, 11, 12로 증가하다가 연도가 넘어가면서 다시 1, 2로 순환하는 것을 확인할 수 있습니다. 또한 빈도가 'M'으로 지정되었기 때문에 각 날짜가 해당 월의 마지막 날()로 조정된 점도 주목할 만합니다.

이처럼 DateTimeIndex.month 속성을 활용하면 복잡한 전처리 없이도 시계열 데이터에서 손쉽게 월 정보를 추출할 수 있으며, 월별 집계나 계절성 분석 등에 유용하게 활용됩니다.