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

Python Pandas – Naive(순진한) 타임스탬프를 현지 시간대로 변환하는 방법

개요

Pandas에서 시간대(timezone) 정보가 없는 순진한(naive) 타임스탬프를 특정 현지 시간대로 변환하려면 timestamp.tz_localize() 메서드를 사용합니다. 이때 tz 매개변수에 원하는 시간대를 지정하면 됩니다.

참고로, 이미 시간대가 지정된(aware) 타임스탬프를 다른 시간대로 변경할 때는 tz_convert()를 사용한다는 점도 함께 기억해 두면 좋습니다.

라이브러리 임포트

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

import pandas as pd

Naive 타임스탬프 생성

시간대 정보가 없는 순진한(naive) 타임스탬프를 생성합니다.

timestamp = pd.Timestamp('2021-09-14T15:12:34.261811624')

시간대 추가하기

tz_localize() 메서드에 tz 매개변수로 시간대를 지정하여 현지 시간대를 부여합니다.

timestamp.tz_localize(tz='Australia/Brisbane')

전체 예제 코드

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

import pandas as pd

# 순진한(naive) 타임스탬프 생성
timestamp = pd.Timestamp('2021-09-14T15:12:34.261811624')

# 타임스탬프 출력
print("Timestamp...\n", timestamp)

# 시간대 추가
print("\n현지 시간대가 적용된 타임스탬프...\n", timestamp.tz_localize(tz='Australia/Brisbane'))

실행 결과

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

Timestamp...
 2021-09-14 15:12:34.261811624

현지 시간대가 적용된 타임스탬프...
 2021-09-14 15:12:34.261811624+10:00

정리

출력 결과를 보면 기존 타임스탬프 뒤에 +10:00 오프셋이 붙은 것을 확인할 수 있습니다. 이는 호주 브리즈번(Australia/Brisbane)의 UTC 오프셋으로, tz_localize()를 통해 해당 날짜와 시간이 브리즈번 현지 시간임을 명확히 나타내게 된 것입니다. 이처럼 tz_localize()는 시간 값 자체는 그대로 유지하면서 시간대 정보만 새롭게 부여하는 메서드입니다.