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

Python Pandas – 밀리초 빈도로 TimeDeltaIndex에 내림(Floor) 연산 수행하기

밀리초(ms) 빈도를 기준으로 TimeDeltaIndex에 내림(floor) 연산을 수행하려면 TimeDeltaIndex.floor() 메서드를 사용합니다. 밀리초 빈도를 지정할 때는 freq 매개변수에 'ms' 값을 전달하면 됩니다.

라이브러리 임포트

먼저 필요한 라이브러리를 가져옵니다.

import pandas as pd

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'])

생성된 TimedeltaIndex를 화면에 출력해 확인합니다.

print("TimedeltaIndex...\n", tdIndex)

밀리초 빈도로 내림 연산 수행하기

이제 TimeDeltaIndex에 대해 밀리초 빈도로 내림 연산을 적용합니다. 밀리초 빈도를 나타내기 위해 'ms' 값을 사용했습니다.

print("\nPerforming Floor operation with milliseconds frequency...\n",
tdIndex.floor(freq='ms'))

전체 예제 코드

다음은 위 과정을 모두 포함한 전체 코드입니다.

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의 구성 요소들을 데이터프레임으로 반환
print("\nThe Dataframe of the components of TimeDeltas...\n", tdIndex.components)

# 밀리초 빈도로 TimeDeltaIndex에 내림 연산 수행
# 밀리초 빈도를 위해 'ms' 사용
print("\nPerforming Floor operation with milliseconds frequency...\n",
tdIndex.floor(freq='ms'))

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

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 milliseconds frequency...
TimedeltaIndex([ '5 days 08:20:00', '0 days 17:42:19.999000',
'7 days 11:16:02', '0 days 22:35:25.999000'],
dtype='timedelta64[ns]', freq=None)

결과 해석

내림 연산 결과를 보면 각 timedelta 값이 가장 가까운 밀리초 단위 아래 값으로 내림된 것을 확인할 수 있습니다. 예를 들어 '0 days 17:42:19.999999'는 '0 days 17:42:19.999000'으로 변환되어, 밀리초보다 세밀한 마이크로초·나노초 자릿수가 잘려나간 형태가 됩니다. 이처럼 floor(freq='ms')는 시간 델타 데이터를 밀리초 정밀도로 일관되게 맞춰야 할 때 유용하게 활용됩니다.