Pandas에서 DateTimeIndex로부터 연도 정보를 추출하려면 DateTimeIndex.year 속성을 사용하면 됩니다. 이 속성은 인덱스에 포함된 각 날짜의 연도를 정수 형태로 반환합니다.
필요한 라이브러리 불러오기
먼저 pandas 라이브러리를 임포트합니다.
import pandas as pd
DateTimeIndex 생성하기
시작 시점을 '2021-09-24 02:35:55'로 지정하고, 기간(periods)은 6개, 빈도(freq)는 'Y'(연 단위)로 설정하여 DateTimeIndex를 만들어 보겠습니다. 타임존은 호주 시드니(Australia/Sydney)로 지정합니다.
datetimeindex = pd.date_range('2021-09-24 02:35:55', periods=6, tz='Australia/Sydney', freq='Y')DateTimeIndex 출력하기
print("DateTimeIndex...\n", datetimeindex)연도 추출하기
.year 속성을 사용하면 DateTimeIndex에 포함된 각 날짜의 연도 값을 얻을 수 있습니다.
print("\n추출한 연도 값..\n", datetimeindex.year)전체 예제 코드
지금까지 설명한 내용을 하나의 코드로 정리하면 다음과 같습니다.
import pandas as pd
# 기간 6개, 빈도 Y(연 단위)인 DatetimeIndex 생성
# 타임존은 Australia/Sydney로 설정
datetimeindex = pd.date_range('2021-09-24 02:35:55', periods=6, tz='Australia/Sydney', freq='Y')
# DateTimeIndex 출력
print("DateTimeIndex...\n", datetimeindex)
# DateTimeIndex의 빈도 출력
print("DateTimeIndex frequency...\n", datetimeindex.freq)
# 연도 추출
print("\n추출한 연도 값..\n", datetimeindex.year)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DateTimeIndex...
DatetimeIndex(['2021-12-31 02:35:55+11:00', '2022-12-31 02:35:55+11:00',
'2023-12-31 02:35:55+11:00', '2024-12-31 02:35:55+11:00',
'2025-12-31 02:35:55+11:00', '2026-12-31 02:35:55+11:00'],
dtype='datetime64[ns, Australia/Sydney]', freq='A-DEC')
DateTimeIndex frequency...
<YearEnd: month=12>
추출한 연도 값..
Int64Index([2021, 2022, 2023, 2024, 2025, 2026], dtype='int64')정리
빈도를 'Y'로 지정하면 각 연도의 마지막 날(12월 31일)을 기준으로 날짜가 생성됩니다. 위 예제에서는 시작일이 9월이지만, 연 단위 빈도가 적용되어 2021년부터 2026년까지 매년 12월 31일의 날짜들이 인덱스에 담긴 것을 확인할 수 있습니다. 그리고 datetimeindex.year 속성을 통해 [2021, 2022, 2023, 2024, 2025, 2026]이라는 연도 배열을 손쉽게 얻을 수 있습니다. 이처럼 .year, .month, .day 등의 속성을 활용하면 시계열 데이터에서 원하는 날짜 구성 요소를 간편하게 추출할 수 있습니다.