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

Python Pandas – DateTimeIndex에서 특정 시계열 빈도로 연도 추출하기

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 등의 속성을 활용하면 시계열 데이터에서 원하는 날짜 구성 요소를 간편하게 추출할 수 있습니다.