이 글에서는 "24 August 2020"과 같은 날짜 문자열을 2020-08-24 00:00:00 형태의 datetime 객체로 변환하는 파이썬 프로그램을 소개합니다. 이 작업은 Pandas 라이브러리에서 제공하는 to_datetime() 함수를 사용하면 매우 간단하게 처리할 수 있습니다.
to_datetime() 함수란?
pd.to_datetime()은 다양한 형식의 날짜·시간 문자열을 Pandas의 datetime64[ns] 타입으로 변환해 주는 함수입니다. 여러 가지 날짜 표기 형식을 자동으로 인식하기 때문에, 별도의 포맷 지정 없이도 대부분의 문자열을 손쉽게 변환할 수 있다는 장점이 있습니다.
알고리즘
1단계: 날짜 문자열을 담은 Pandas 시리즈를 정의합니다.
2단계: to_datetime() 함수를 사용하여 날짜 문자열을 datetime 형식으로 변환합니다.
3단계: 변환된 결과를 출력합니다.
예제 코드
import pandas as pd
# 날짜 문자열로 구성된 시리즈 생성
series = pd.Series(["24 August 2020", "25 December 2020 20:05"])
print("Series: \n", series)
# to_datetime()으로 datetime 형식 변환
datetime = pd.to_datetime(series)
print("DateTime Format: \n", datetime)
실행 결과
Series:
0 24 August 2020
1 25 December 2020 20:05
dtype: object
DateTime Format:
0 2020-08-24 00:00:00
1 2020-12-25 20:05:00
dtype: datetime64[ns]
결과 해석
실행 결과를 보면 원래 object(문자열) 타입이었던 시리즈가 datetime64[ns] 타입으로 변환된 것을 확인할 수 있습니다. 시간 정보가 없는 "24 August 2020"은 자정(00:00:00)으로 자동 처리되며, "25 December 2020 20:05"처럼 시각이 포함된 문자열은 해당 시간까지 정확하게 반영됩니다.
참고: format 옵션 활용
날짜 형식이 일정하고 명확한 경우에는 format 인자를 지정하면 변환 속도를 크게 높일 수 있습니다. 예를 들어 다음과 같이 사용할 수 있습니다.
pd.to_datetime(series, format="%d %B %Y")
또한 잘못된 날짜 값이 섞여 있을 경우 errors='coerce' 옵션을 사용하면 오류 대신 NaT(Not a Time) 값으로 처리되어 데이터 정제에 유용합니다.