Pandas의 TimeDeltaIndex에서 분(minute) 단위 빈도로 내림(floor) 연산을 수행하려면 floor() 메서드를 사용하면 됩니다. 이때 freq 매개변수에 분 빈도를 의미하는 'T'(참고로 'T'는 'min'의 별칭입니다) 값을 지정합니다.
필요한 라이브러리 가져오기
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
TimeDeltaIndex 객체 생성하기
timedelta 형식의 데이터를 'data' 매개변수에 전달하여 TimeDeltaIndex 객체를 생성합니다.
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 출력하기
생성된 TimedeltaIndex를 화면에 출력해 확인합니다.
print("TimedeltaIndex...\n", tdIndex)
분 빈도로 내림(Floor) 연산 수행하기
분 단위 빈도로 내림 연산을 적용합니다. 분 빈도는 'T'로 지정합니다.
print("\nPerforming Floor operation with minute frequency...\n",
tdIndex.floor(freq='T'))
전체 예제 코드
지금까지의 과정을 하나로 합친 전체 코드는 다음과 같습니다.
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)
# 분 빈도로 내림(Floor) 연산 수행
# 분 빈도는 'T'로 지정합니다.
print("\nPerforming Floor operation with minute frequency...\n",
tdIndex.floor(freq='T'))
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
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 minute frequency... TimedeltaIndex(['5 days 08:20:00', '0 days 17:42:00', '7 days 11:16:00', '0 days 22:35:00'], dtype='timedelta64[ns]', freq=None)
결과 해석
내림(floor) 연산이 적용되면 각 시간 값의 초(second) 이하 단위가 모두 제거되고, 가장 가까운 아래쪽 분 단위로 조정됩니다. 예를 들어 '0 days 17:42:19.999999'는 '0 days 17:42:00'으로 변환된 것을 확인할 수 있습니다. 이처럼 floor(freq='T')를 활용하면 밀리초·마이크로초·나노초 등 불필요한 세부 단위를 손쉽게 버리고 분 단위로 데이터를 정규화할 수 있습니다.