마이크로초(microseconds) 빈도를 기준으로 TimeDeltaIndex에 floor(내림) 연산을 수행하려면 TimeDeltaIndex.floor() 메서드를 사용합니다. 이때 마이크로초 빈도를 지정하려면 freq 매개변수에 'us' 값을 전달하면 됩니다.
1단계: 라이브러리 임포트
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
2단계: TimeDeltaIndex 객체 생성
TimeDeltaIndex 객체를 생성합니다. 여기서는 data 매개변수를 사용해 timedelta 형식의 데이터를 설정했습니다.
tdIndex = pd.TimedeltaIndex(data =['5 day 8h 20min 35us 45ns', '+17:42:19.999999', '7 day 3h 08:16:02.000055', '+22:35:25.999999'])
3단계: TimedeltaIndex 출력
생성된 TimedeltaIndex를 화면에 출력해 확인합니다.
print("TimedeltaIndex...\n", tdIndex)
4단계: 마이크로초 빈도로 floor 연산 수행
마이크로초 빈도를 기준으로 TimeDeltaIndex에 floor 연산을 수행합니다. 마이크로초 빈도를 나타내기 위해 'us'를 사용했습니다.
print("\nPerforming Floor operation with microseconds frequency...\n",
tdIndex.floor(freq='us'))
전체 예제 코드
지금까지의 과정을 하나로 합친 전체 코드는 다음과 같습니다.
import pandas as pd
# TimeDeltaIndex 객체 생성
# data 매개변수를 사용해 timedelta 형식의 데이터를 설정
tdIndex = pd.TimedeltaIndex(data =['5 day 8h 20min 35us 45ns', '+17:42:19.999999',
'7 day 3h 08:16:02.000055', '+22:35:25.999999'])
# TimedeltaIndex 출력
print("TimedeltaIndex...\n", tdIndex)
# TimeDelta 구성 요소(components)를 데이터프레임 형태로 반환
print("\nThe Dataframe of the components of TimeDeltas...\n", tdIndex.components)
# 마이크로초 빈도로 TimeDeltaIndex에 floor 연산 수행
# 마이크로초 빈도에는 'us' 사용
print("\nPerforming Floor operation with microseconds frequency...\n",
tdIndex.floor(freq='us'))
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
TimedeltaIndex...
TimedeltaIndex(['5 days 08:20:00.000035045', '0 days 17:42:19.999999',
'7 days 11:16:02.000055', '0 days 22:35:25.999999'],
dtype='timedelta64[ns]', freq=None)
The Dataframe of the components of TimeDeltas...
days hours minutes seconds milliseconds microseconds nanoseconds
0 5 8 20 0 0 35 45
1 0 17 42 19 999 999 0
2 7 11 16 2 0 55 0
3 0 22 35 25 999 999 0
Performing Floor operation with microseconds frequency...
TimedeltaIndex(['5 days 08:20:00.000035', '0 days 17:42:19.999999',
'7 days 11:16:02.000055', '0 days 22:35:25.999999'],
dtype='timedelta64[ns]', freq=None)
정리
floor 연산은 지정된 빈도 단위보다 더 세밀한 값을 잘라내어 아래 방향으로 반올림하는 기능입니다. 위 예제에서 나노초(nanoseconds) 값인 45ns가 잘려나간 것을 확인할 수 있습니다. 즉, freq='us'를 적용하면 마이크로초보다 작은 단위의 시간 정보가 제거되어 결과가 마이크로초 단위로 정렬됩니다. 참고로 밀리초 빈도에는 'ms', 초 빈도에는 's'처럼 원하는 정밀도에 맞춰 freq 값을 자유롭게 변경해 사용할 수 있습니다.