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

Python Pandas – PeriodIndex 객체에서 요일(weekday) 구하기

Python Pandas – PeriodIndex 객체에서 요일 구하기

Pandas의 PeriodIndex 객체에서 요일 정보를 얻으려면 PeriodIndex.weekday 속성을 사용하면 됩니다. 이 속성은 각 기간(period)에 해당하는 요일을 정수로 반환하며, 월요일=0, 화요일=1, … 일요일=6과 같이 매핑됩니다.

1. 필요한 라이브러리 임포트하기

가장 먼저 pandas 라이브러리를 임포트합니다.

import pandas as pd

2. PeriodIndex 객체 생성하기

PeriodIndex는 시간상 규칙적인 기간(regular periods)을 나타내는 서수(ordinal) 값을 담고 있는 불변(immutable) ndarray입니다. 날짜·시간 문자열 목록과 freq 매개변수를 지정하여 생성할 수 있으며, 여기서는 빈도를 분 단위("T")로 설정했습니다.

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

3. PeriodIndex 객체 출력하기

생성된 PeriodIndex 객체를 출력해 내용을 확인합니다.

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

4. 요일(weekday) 가져오기

periodIndex.weekday 속성을 호출하면 PeriodIndex 객체에 포함된 각 기간의 요일을 정수 배열 형태로 얻을 수 있습니다.

print("\nThe day of week from the PeriodIndex object...\n", periodIndex.weekday)

전체 예제 코드

지금까지 설명한 내용을 모두 포함한 전체 코드는 다음과 같습니다.

import pandas as pd

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

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

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

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

# PeriodIndex 객체에서 주(week) 번호 출력
print("\nThe week from the PeriodIndex object...\n", periodIndex.week)

# PeriodIndex 객체에서 요일 출력
# 월요일=0, 화요일=1, ... 일요일=6
print("\nThe day of week from the PeriodIndex object...\n", periodIndex.weekday)

실행 결과

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

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

PeriodIndex frequency object...
<Minute>

PeriodIndex frequency object as a string...
T

The week from the PeriodIndex object...
Int64Index([38, 44, 28, 25], dtype='int64')

The day of week from the PeriodIndex object...
Int64Index([5, 2, 3, 5], dtype='int64')

결과 해석

출력된 요일 값을 실제 날짜와 대조해 보면 다음과 같습니다.

  • 2021-09-25 → 5 (토요일)
  • 2019-10-30 → 2 (수요일)
  • 2021-07-15 → 3 (목요일)
  • 2022-06-25 → 5 (토요일)

참고로 최신 버전의 pandas에서는 Int64Index 대신 일반 Index 객체 형태로 반환됩니다. 이처럼 weekday 속성을 활용하면 시계열 데이터에서 특정 기간의 요일 정보를 손쉽게 추출할 수 있어, 요일별 패턴 분석이나 필터링 작업에 유용하게 활용됩니다.