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

Python Pandas – PeriodIndex 객체에서 시간(Hour) 추출하기

Python Pandas에서 PeriodIndex 객체에 저장된 각 기간(period)의 시간(hour) 값을 추출하려면 PeriodIndex.hour 속성을 사용하면 됩니다. 이 속성은 PeriodIndex 내 모든 요소의 시간을 정수형 배열로 반환합니다.

1. 라이브러리 임포트

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

import pandas as pd

2. PeriodIndex 객체 생성

이제 PeriodIndex 객체를 생성합니다. PeriodIndex는 시간상 규칙적인 기간을 나타내는 서수(ordinal) 값을 담고 있는 불변(immutable) ndarray입니다. 여기서는 freq 매개변수를 사용하여 빈도를 분 단위("T")로 설정했습니다.

periodIndex = pd.PeriodIndex(['2021-09-25 07:50:35', '2019-10-30 04:35:45',
'2021-07-15 02:25:15', '2022-06-25 09:20:55'], freq="T")

생성된 PeriodIndex 객체를 화면에 출력해 보겠습니다.

print("PeriodIndex...\n", periodIndex)

3. 시간(Hour) 값 확인하기

PeriodIndex 객체에서 시간 값을 추출하여 출력합니다.

print("\nThe hour from the PeriodIndex object...\n", periodIndex.hour)

전체 예제 코드

다음은 지금까지의 과정을 하나로 합친 전체 코드입니다.

import pandas as pd

# PeriodIndex 객체 생성
# PeriodIndex는 시간상 규칙적인 기간을 나타내는 서수 값을 담는 불변 ndarray입니다.
# freq 매개변수를 사용하여 빈도를 설정합니다.
periodIndex = pd.PeriodIndex(['2021-09-25 07:50:35', '2019-10-30 04:35:45',
'2021-07-15 02:25:15', '2022-06-25 09:20:55'], freq="T")

# PeriodIndex 객체 출력
print("PeriodIndex...\n", periodIndex)

# PeriodIndex의 빈도 객체 출력
print("\nPeriodIndex frequency object...\n", periodIndex.freq)

# 문자열 형태의 PeriodIndex 빈도 출력
print("\nPeriodIndex frequency object as a string...\n", periodIndex.freqstr)

# PeriodIndex 객체에서 시간(hour) 추출
print("\nThe hour from the PeriodIndex object...\n", periodIndex.hour)

실행 결과

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

PeriodIndex...
PeriodIndex(['2021-09-25 07:50', '2019-10-30 04:35', '2021-07-15 02:25', '2022-06-25 09:20'],
dtype='period[T]')

PeriodIndex frequency object...
<Minute>

PeriodIndex frequency object as a string...
T

The hour from the PeriodIndex object...
Int64Index([7, 4, 2, 9], dtype='int64')

정리

실행 결과를 보면 각 날짜·시각 데이터에서 시간 부분만 추출되어 [7, 4, 2, 9]라는 정수 배열로 반환된 것을 확인할 수 있습니다. 이처럼 PeriodIndex.hour 속성을 활용하면 별도의 변환 작업 없이도 기간 데이터에서 시간 정보를 손쉽게 얻을 수 있습니다. 참고로 같은 방식으로 .minute, .second, .day, .month 등 다른 구성 요소들도 추출할 수 있습니다.