[파이썬] pandas에서 시간대 처리

Python의 라이브러리인 pandas는 데이터 처리와 분석을 위한 강력한 도구입니다. pandas는 시계열 데이터를 다루는 데 특히 많이 사용되며, 시간대 처리를 위한 다양한 기능을 제공합니다. 이번 포스트에서는 pandas를 사용하여 시간대 처리를 어떻게 수행할 수 있는지 알아보겠습니다.

1. 시간대 정보 추가하기

시계열 데이터를 다룰 때 가장 중요한 부분은 시간대 정보를 포함하는 것입니다. pandas에서는 DatetimeIndex를 사용하여 날짜와 시간 정보를 효과적으로 처리할 수 있습니다. 다음은 시간대 정보를 추가하는 예제입니다.

import pandas as pd

# 날짜 범위 생성
idx = pd.date_range(start='2021-01-01', end='2021-01-10', freq='D')

# 시간대 정보 추가
idx = idx.tz_localize('UTC')

위의 코드에서는 pd.date_range를 사용하여 2021년 1월 1일부터 2021년 1월 10일까지의 날짜 범위를 생성합니다. 그런 다음 tz_localize를 사용하여 시간대 정보를 추가합니다. 여기서는 UTC 시간대를 사용하였습니다.

2. 시간대 변환하기

때로는 데이터가 다른 시간대에서 기록된 경우가 있습니다. 이러한 경우에는 데이터의 시간대를 일치시켜야 합니다. pandas에서는 tz_convert 메서드를 사용하여 시간대를 변환할 수 있습니다. 다음은 시간대 변환의 예제입니다.

import pandas as pd

# 날짜 범위 생성
idx = pd.date_range(start='2021-01-01', end='2021-01-10', freq='D')

# 시간대 정보 추가
idx = idx.tz_localize('UTC')

# 시간대 변환
idx_local = idx.tz_convert('Asia/Seoul')

위의 코드에서는 먼저 idx에 UTC 시간대 정보를 추가한 다음, tz_convert를 사용하여 시간대를 ‘Asia/Seoul’로 변환합니다.

3. 시간대 간 변환하기

때로는 서로 다른 시간대 간의 변환도 필요할 수 있습니다. 이를 위해 pandas는 pytz 라이브러리를 사용하여 시간대 간 변환을 제공합니다. 다음은 시간대 간 변환의 예제입니다.

import pandas as pd
from pytz import timezone

# 날짜 범위 생성
idx = pd.date_range(start='2021-01-01', end='2021-01-10', freq='D')

# 시간대 정보 추가
idx = idx.tz_localize('Asia/Tokyo')

# 시간대 간 변환
idx_utc = idx.tz_convert(timezone('UTC'))

위의 코드에서는 idx에 ‘Asia/Tokyo’ 시간대 정보를 추가한 다음, tz_convert를 사용하여 시간대를 UTC로 변환합니다. 이를 위해 pytz 라이브러리의 timezone 함수를 사용합니다.

마무리

pandas는 시계열 데이터를 다루는 데 강력한 도구입니다. 시간대 처리는 시계열 데이터의 중요한 측면 중 하나이며, pandas를 사용하여 쉽게 처리할 수 있습니다. 이번 포스트에서는 시간대 정보를 추가하고 변환하는 방법을 알아보았습니다. 더 많은 pandas의 기능을 사용하면서 시계열 데이터를 더욱 효과적으로 다루어 보세요!