개요
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()는 시간 값 자체는 그대로 유지하면서 시간대 정보만 새롭게 부여하는 메서드입니다.