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

Python Pandas – Period 객체를 일(Daily) 빈도의 타임스탬프로 변환하는 방법

Python Pandas에서 Period 객체를 일(Daily) 빈도의 타임스탬프로 변환하려면 period.to_timestamp() 메서드를 사용하고, freq 매개변수에 'D' 값을 지정하면 됩니다.

필요한 라이브러리 가져오기

먼저 필요한 라이브러리를 임포트합니다.

import pandas as pd

Period 객체란?

pandas의 Period는 특정 시점이 아닌 하나의 기간(시간 구간)을 나타내는 객체입니다. 예를 들어 하루, 한 달, 1초 같은 구간을 표현할 수 있으며, 다음과 같이 생성할 수 있습니다.

period = pd.Period(freq="S", year=2021, month=11, day=26, hour=11, minute=45, second=55)

여기서 freq="S"는 초(second) 단위의 빈도를 의미하며, 연도·월·일·시·분·초 정보를 모두 지정하여 정밀한 기간 객체를 만들었습니다.

Period 객체 출력하기

생성된 Period 객체를 확인해 보겠습니다.

print("Period...\n", period)

일 빈도의 타임스탬프로 변환하기

이제 to_timestamp() 메서드를 사용해 Period 객체를 Timestamp 형태로 변환합니다. 이때 freq 매개변수를 'D'(daily, 일 단위)로 설정하면 해당 날짜의 자정(00:00:00)을 기준으로 하는 타임스탬프가 반환됩니다.

print("\nPeriod to Timestamp with daily frequency...\n", period.to_timestamp(freq='D'))

전체 예제 코드

지금까지 설명한 내용을 하나의 코드로 정리하면 다음과 같습니다.

import pandas as pd

# pandas.Period는 하나의 기간(시간 구간)을 나타냅니다.
# Period 객체 생성
period = pd.Period(freq="S", year=2021, month=11, day=26, hour=11, minute=45, second=55)

# Period 객체 출력
print("Period...\n", period)

# Period 객체를 Timestamp로 변환
# freq 매개변수로 빈도를 설정하며,
# 'D'는 일(daily) 단위 빈도를 의미합니다.
print("\nPeriod to Timestamp with daily frequency...\n", period.to_timestamp(freq='D'))

실행 결과

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

Period...
2021-11-26 11:45:55

Period to Timestamp with daily frequency...
2021-11-26 00:00:00

결과 해석

원래 Period 객체는 2021-11-26 11:45:55라는 초 단위의 기간을 나타냈습니다. 그러나 to_timestamp(freq='D')를 적용하면 일 단위 빈도로 변환되면서 시·분·초 정보가 사라지고 해당 날짜의 시작 시점인 2021-11-26 00:00:00이 반환됩니다. 즉, freq 값에 따라 변환 결과의 정밀도가 달라진다는 점을 기억하면 유용합니다.