특정 시계열 빈도가 설정된 DateTimeIndex에서 마이크로초(microsecond)를 추출하려면 DateTimeIndex.microsecond 속성을 사용합니다. 이 속성은 인덱스 내 각 타임스탬프의 마이크로초 값을 정수 배열 형태로 반환합니다.
라이브러리 임포트
먼저 필요한 pandas 라이브러리를 임포트합니다.
import pandas as pd
DatetimeIndex 생성하기
기간(periods)은 6으로, 빈도(freq)는 'us', 즉 마이크로초로 지정하여 DatetimeIndex를 생성합니다. 시간대는 호주 시드니('Australia/Sydney')로 설정합니다.
datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=6, tz='Australia/Sydney', freq='us')
생성된 DateTimeIndex를 화면에 출력합니다.
print("DateTimeIndex...\n", datetimeindex)
microsecond 속성을 호출하여 마이크로초 값을 가져옵니다.
print("\nGetting the microseconds..\n", datetimeindex.microsecond)
전체 예제 코드
지금까지 설명한 내용을 모두 포함한 전체 코드는 다음과 같습니다.
import pandas as pd
# 기간 6개, 빈도 'us'(마이크로초)로 DatetimeIndex 생성
# 시간대는 Australia/Sydney
datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=6, tz='Australia/Sydney', freq='us')
# DateTimeIndex 출력
print("DateTimeIndex...\n", datetimeindex)
# DateTimeIndex 빈도 출력
print("DateTimeIndex frequency...\n", datetimeindex.freq)
# 마이크로초 값 가져오기
print("\nGetting the microseconds..\n", datetimeindex.microsecond)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DateTimeIndex... DatetimeIndex([ '2021-10-20 02:30:50+11:00', '2021-10-20 02:30:50.000001+11:00', '2021-10-20 02:30:50.000002+11:00', '2021-10-20 02:30:50.000003+11:00', '2021-10-20 02:30:50.000004+11:00', '2021-10-20 02:30:50.000005+11:00'], dtype='datetime64[ns, Australia/Sydney]', freq='U') DateTimeIndex frequency... <Micro> Getting the microseconds.. Int64Index([0, 1, 2, 3, 4, 5], dtype='int64')
실행 결과를 보면 시작 시각 '2021-10-20 02:30:50'부터 1마이크로초씩 증가하는 총 6개의 타임스탬프가 생성되었습니다. 또한 microsecond 속성을 통해 각 타임스탬프의 마이크로초 값인 [0, 1, 2, 3, 4, 5]가 Int64 정수 배열로 반환된 것을 확인할 수 있습니다. 이처럼 microsecond 속성을 활용하면 고빈도 시계열 데이터에서 초 단위 미만의 세밀한 정보를 손쉽게 추출할 수 있습니다.