Pandas에서 마이크로초(microseconds) 빈도로 DateTimeIndex를 반올림하려면 DateTimeIndex.round() 메서드를 사용하면 됩니다. 이때 freq 매개변수에 'us'(마이크로초) 값을 지정하면 원하는 정밀도로 반올림 결과를 얻을 수 있습니다.
1단계: 필요한 라이브러리 불러오기
가장 먼저 Pandas 라이브러리를 임포트합니다.
import pandas as pd
2단계: DatetimeIndex 생성하기
기간(periods)은 5, 빈도는 초 단위인 '28s'로 설정하고, 시간대는 'Australia/Adelaide'로 지정하여 DatetimeIndex를 생성합니다.
datetimeindex = pd.date_range('2021-09-29 07:20:32.261811624', periods=5,
tz='Australia/Adelaide', freq='28s')
3단계: 마이크로초 빈도로 반올림 수행하기
DatetimeIndex에 마이크로초 빈도 반올림 연산을 적용합니다. Pandas에서 마이크로초 빈도는 별칭 'us'로 표현됩니다.
print("\nPerforming round operation with microseconds frequency...\n",
datetimeindex.round(freq='us'))
전체 예제 코드
아래는 위 단계를 모두 포함한 완성된 코드입니다.
import pandas as pd
# 기간 5, 빈도 초(28s)인 DatetimeIndex 생성
# 시간대 설정: Australia/Adelaide
datetimeindex = pd.date_range('2021-09-29 07:20:32.261811624', periods=5,
tz='Australia/Adelaide', freq='28s')
# DateTimeIndex 출력
print("DateTimeIndex...\n", datetimeindex)
# DateTimeIndex 빈도 출력
print("DateTimeIndex frequency...\n", datetimeindex.freq)
# 마이크로초 빈도('us')로 반올림 연산 수행
print("\nPerforming round operation with microseconds frequency...\n",
datetimeindex.round(freq='us'))
실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.
DateTimeIndex...
DatetimeIndex(['2021-09-29 07:20:32.261811624+09:30',
'2021-09-29 07:21:00.261811624+09:30',
'2021-09-29 07:21:28.261811624+09:30',
'2021-09-29 07:21:56.261811624+09:30',
'2021-09-29 07:22:24.261811624+09:30'],
dtype='datetime64[ns, Australia/Adelaide]', freq='28S')
DateTimeIndex frequency...
<28 * Seconds>
Performing round operation with microseconds frequency...
DatetimeIndex(['2021-09-29 07:20:32.261812+09:30',
'2021-09-29 07:21:00.261812+09:30',
'2021-09-29 07:21:28.261812+09:30',
'2021-09-29 07:21:56.261812+09:30',
'2021-09-29 07:22:24.261812+09:30'],
dtype='datetime64[ns, Australia/Adelaide]', freq=None)
정리
출력 결과를 보면 나노초(nanoseconds)까지 표시되던 타임스탬프가 freq='us' 옵션을 적용한 후 마이크로초 단위(.261812)로 깔끔하게 반올림된 것을 확인할 수 있습니다. 참고로 반올림 작업이 수행되면 결과 DatetimeIndex의 freq 속성은 None으로 변경됩니다. 이 방법은 시계열 데이터 전처리 과정에서 불필요한 소수점 이하 정밀도를 제거할 때 유용하게 활용됩니다.