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

Python Pandas – DateTimeIndex에서 특정 시계열 빈도 기준으로 초(second) 추출하기

Pandas의 DateTimeIndex에서 초(second) 값을 추출하려면 DateTimeIndex.second 속성을 사용하면 됩니다. 이 속성은 시계열 인덱스에 포함된 각 날짜·시간 값의 '초' 부분만 별도로 가져와 정수 형태의 Index로 반환합니다.

1. 필요한 라이브러리 불러오기

먼저 Pandas 라이브러리를 임포트합니다.

import pandas as pd

2. DateTimeIndex 생성하기

pd.date_range() 함수를 사용해 시작 시점부터 총 6개의 타임스탬프를 생성합니다. 빈도(freq)는 'S', 즉 1초 단위로 지정하고, 시간대(timezone)는 호주 시드니(Australia/Sydney)로 설정합니다.

datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=6, tz='Australia/Sydney', freq='S')

3. DateTimeIndex 출력 및 초 추출하기

생성된 DateTimeIndex를 확인한 뒤, .second 속성으로 초 값을 추출합니다.

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

# 초(second) 값 추출
print("\n추출된 초 값..\n", datetimeindex.second)

전체 예제 코드

import pandas as pd

# periods=6, 빈도는 'S'(초 단위)
# 시간대는 Australia/Sydney로 설정
datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=6, tz='Australia/Sydney', freq='S')

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

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

# 초(second) 값 추출
print("\n추출된 초 값..\n", datetimeindex.second)

실행 결과

DateTimeIndex...
DatetimeIndex(['2021-10-20 02:30:50+11:00', '2021-10-20 02:30:51+11:00',
               '2021-10-20 02:30:52+11:00', '2021-10-20 02:30:53+11:00',
               '2021-10-20 02:30:54+11:00', '2021-10-20 02:30:55+11:00'],
              dtype='datetime64[ns, Australia/Sydney]', freq='S')
DateTimeIndex frequency...
<Second>

추출된 초 값..
Int64Index([50, 51, 52, 53, 54, 55], dtype='int64')

핵심 정리

  • pd.date_range()freq='S'를 지정하면 초 단위 시계열 인덱스가 생성됩니다.
  • tz 파라미터를 사용하면 특정 시간대가 적용된 DatetimeIndex를 만들 수 있습니다.
  • datetimeindex.second 속성은 각 타임스탬프의 초 값을 Int64Index 형태로 반환합니다.
  • 같은 방식으로 .hour, .minute, .day 등 다른 날짜·시간 구성 요소도 손쉽게 추출할 수 있습니다.