from datetime import datetime
# 날짜 문자열을 datetime 객체로 변환
= "2023-10-09"
date_str = datetime.strptime(date_str, "%Y-%m-%d")
date_obj
print(date_obj)
2023-10-09 00:00:00
날짜 문자열을 날짜 형식으로 변환하기
gabriel yang
October 10, 2024
데이터 분석이나 웹 개발을 하다 보면, 날짜 데이터가 텍스트(문자열) 형식으로 저장되어 있는 경우가 종종 있습니다. 하지만 날짜 정보를 다룰 때는 문자열보다는 날짜 데이터 형식으로 변환해서 처리하는 것이 더 효율적입니다. Python에서는 이러한 작업을 쉽게 할 수 있는 다양한 방법을 제공합니다. 이 글에서는 대표적으로 많이 쓰이는 datetime
모듈과 pandas
라이브러리를 사용하여 날짜 형식 문자열을 날짜 데이터 형식으로 변환하는 방법과 변환 후 날짜를 수정하는 방법을 소개하겠습니다.
datetime
객체로 변환하기Python의 기본 내장 모듈인 datetime
을 사용하면 날짜 형식 문자열을 datetime
객체로 변환할 수 있습니다. 주로 strptime
메서드를 사용하는데, 이 메서드는 날짜 형식의 문자열을 파싱하여 datetime
객체로 변환해 줍니다.
datetime.strptime
사용 예시:from datetime import datetime
# 날짜 문자열을 datetime 객체로 변환
date_str = "2023-10-09"
date_obj = datetime.strptime(date_str, "%Y-%m-%d")
print(date_obj)
2023-10-09 00:00:00
위 코드에서는 "2023-10-09"
라는 날짜 형식의 문자열을 datetime
객체로 변환하였습니다. 여기서 "%Y-%m-%d"
는 날짜 형식이 연-월-일로 되어 있음을 의미합니다.
종종 데이터에서 날짜 형식이 우리가 원하는 형식과 맞지 않는 경우가 있습니다. 예를 들어 "2023/10/09"
와 같은 형식으로 되어 있을 수도 있죠. 이런 경우에는 strptime
에서 형식에 맞게 변환해 주면 됩니다.
from datetime import datetime
# 슬래시(/)로 구분된 날짜 문자열 변환
date_str = "2023/10/09"
date_obj = datetime.strptime(date_str, "%Y/%m/%d")
print(date_obj)
2023-10-09 00:00:00
여기서는 슬래시 /
로 구분된 날짜 형식 문자열을 변환하고 있습니다. 이렇게 다양한 형식을 처리할 수 있습니다.
pandas
를 이용한 날짜 변환대량의 데이터 처리를 할 때는 pandas
라이브러리를 많이 사용합니다. pandas
에서는 to_datetime
함수를 사용하여 문자열을 쉽게 날짜 형식으로 변환할 수 있습니다. 이 함수는 날짜 형식을 자동으로 인식하므로, 매우 편리하게 사용할 수 있습니다.
pandas.to_datetime
사용 예시:import pandas as pd
date_series = pd.Series(["2023-10-09", "2023-5-09", "2023-11-09"])
# pandas를 이용한 날짜 형식 변환
date_series_converted = pd.to_datetime(date_series)
print(date_series_converted)
0 2023-10-09
1 2023-05-09
2 2023-11-09
dtype: datetime64[ns]
pandas
는 다양한 날짜 형식을 자동으로 처리하기 때문에 to_datetime
함수 하나만으로도 여러 형식의 날짜를 변환할 수 있습니다.
변환된 날짜 데이터를 수정하고 싶다면, datetime
모듈의 기능을 활용할 수 있습니다. 예를 들어, 날짜에 며칠을 더하거나 빼고 싶은 경우에는 timedelta
객체를 사용할 수 있습니다.
from datetime import datetime, timedelta
# 현재 날짜
date_obj = datetime.strptime("2023-10-09", "%Y-%m-%d")
# 날짜에 7일 더하기
new_date = date_obj + timedelta(days=7)
print(new_date)
2023-10-16 00:00:00
위 코드에서는 기존 날짜에 7일을 더하여 새로운 날짜를 계산하였습니다. 이처럼 timedelta
객체를 이용하면 날짜에 일, 시간, 분 등을 더하거나 뺄 수 있습니다.
date() 메서드를 사용하면 datetime 객체에서 날짜 부분만 추출할 수 있습니다.
strftime() 메서드는 datetime 객체를 문자열로 포맷할 수 있게 해줍니다. 이 방법을 사용하여 날짜만 원하는 형식으로 가져올 수도 있습니다.
timedelta는 다음과 같은 인자(옵션)를 통해 특정 기간을 정의할 수 있습니다.
이번 글에서는 Python의 datetime
모듈과 pandas
라이브러리를 활용하여 날짜 형식 문자열을 날짜 데이터 형식으로 변환하고, 변환 후 날짜를 수정하는 방법에 대해 알아보았습니다. 데이터를 다룰 때 날짜 처리에 어려움을 겪고 있다면, 위 방법들을 활용하여 날짜 데이터를 효율적으로 관리해 보세요.