파이썬을 이용해 데이터 분석을 하다 보면 날짜와 시간을 다루는 일이 매우 빈번하다. 이를 간편하게 처리하기 위해 datetime
, timedelta
, 그리고 pandas
라이브러리를 활용할 수 있다. 이 글에서는 각각의 사용법을 예시와 함께 자세히 설명한다.
1. datetime 모듈을 사용한 날짜 다루기
datetime
모듈은 파이썬에서 날짜와 시간을 다루는 데 가장 많이 사용되는 표준 라이브러리이다.
이를 통해 날짜 생성, 비교, 형식 변환 등의 다양한 작업을 할 수 있다.
from datetime import datetime
# 현재 날짜와 시간 가져오기
now = datetime.now()
print("현재 날짜와 시간:", now)
datetime.now()
를 사용하면 현재 시스템의 날짜와 시간을 가져올 수 있다.
이는 데이터 생성 시간을 기록하거나 현재 시점을 기준으로 데이터를 비교하는 데 유용하다.
- datetime.now(): 시스템의 현재 날짜와 시간을 반환하는 함수로, 데이터의 최신 상태를 파악하거나 기록할 때 사용된다.
# 특정 날짜 생성하기
specific_date = datetime(2023, 10, 15, 14, 30)
print("특정 날짜와 시간:", specific_date)
datetime
객체를 생성할 때는 연도, 월, 일, 시, 분 등을 지정할 수 있다.
위 예시에서는 2023년 10월 15일 14시 30분을 특정하여 생성하였다.
- datetime(year, month, day, hour, minute): 지정된 연도, 월, 일, 시, 분을 기반으로
datetime
객체를 생성한다. 특정 시점에 대한 객체를 생성하여 이벤트를 관리하거나 기록할 때 유용하다.
# 문자열을 datetime 객체로 변환하기
date_str = "2024-10-15 14:30:00"
date_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print("문자열을 datetime 객체로 변환:", date_obj)
datetime.strptime()
함수는 문자열을 datetime
객체로 변환할 때 사용된다.
예를 들어, 데이터베이스에서 가져온 날짜가 문자열 형태일 때 이를 datetime
객체로 변환해 날짜 계산 등을 수행할 수 있다.
- datetime.strptime(date_string, format): 지정된 형식(
format
)에 맞추어 문자열(date_string
)을datetime
객체로 변환한다. 문자열로 저장된 날짜 데이터를 처리하거나 계산할 때 사용된다.
# datetime 객체를 문자열로 변환하기
formatted_date = date_obj.strftime("%Y/%m/%d %H:%M")
print("datetime 객체를 문자열로 변환:", formatted_date)
datetime.strftime()
함수는 datetime
객체를 특정 형식의 문자열로 변환할 때 사용된다.
이 방법을 통해 날짜를 사람이 읽기 쉬운 형식으로 출력하거나 파일 이름 등에 활용할 수 있다.
- datetime.strftime(format):
datetime
객체를 지정된 형식의 문자열로 변환한다. 이는 날짜 데이터를 보고서나 로그 파일에 기록할 때 매우 유용하다.
2. timedelta를 사용한 시간 간격 계산
timedelta
객체는 날짜와 시간 간격을 표현하는 데 사용된다.
주로 날짜 간의 차이를 계산하거나, 특정 날짜에 시간 간격을 더하거나 뺄 때 유용하다.
from datetime import datetime, timedelta
# 현재 날짜와 시간 가져오기
now = datetime.now()
# 5일 후의 날짜 계산하기
five_days_later = now + timedelta(days=5)
print("5일 후의 날짜:", five_days_later)
timedelta(days=5)
는 현재 날짜에 5일을 더한 결과를 계산한다. 이를 통해 미래의 특정 날짜를 쉽게 구할 수 있다.
- timedelta(days=n): 지정된 일수를 나타내는
timedelta
객체를 생성한다. 날짜 간의 간격을 계산하거나 미래의 특정 시점을 예측할 때 사용된다.
# 3시간 30분 전의 시간 계산하기
three_hours_before = now - timedelta(hours=3, minutes=30)
print("3시간 30분 전의 시간:", three_hours_before)
timedelta
객체를 이용하면 특정 시간 간격을 더하거나 뺄 수 있다. 위 예시에서는 현재 시간에서 3시간 30분을 빼서 이전의 시점을 계산하였다.
- timedelta(hours=n, minutes=m): 지정된 시간과 분을 나타내는
timedelta
객체를 생성한다. 과거의 특정 시점을 계산하거나 기록할 때 유용하다.
# 두 날짜 사이의 차이 계산하기
start_date = datetime(2024, 10, 10)
end_date = datetime(2024, 10, 15)
difference = end_date - start_date
print("두 날짜 사이의 차이 (일):", difference.days)
두 datetime
객체의 차이는 timedelta
객체로 반환된다. 이를 통해 두 날짜 간의 일수 차이를 계산할 수 있다.
- datetime 객체 간의 차이: 두
datetime
객체를 빼면timedelta
객체가 반환된다. 이를 통해 두 날짜 사이의 기간을 계산할 수 있다.
3. pandas에서 날짜 컬럼 다루기
pandas
는 데이터 분석에 널리 사용되는 라이브러리로, 날짜 데이터를 쉽게 처리할 수 있는 다양한 기능을 제공한다.
특히 datetime
형식으로 날짜 컬럼을 변환하거나, 날짜 정보를 기준으로 데이터 필터링을 할 때 매우 편리하다.
import pandas as pd
# 데이터 프레임 생성
data = {
'date': ["2024-10-10", "2024-10-11", "2024-10-12", "2024-10-13"],
'value': [100, 200, 150, 300]
}
df = pd.DataFrame(data)
위 예시는 날짜와 값이 포함된 간단한 데이터 프레임을 생성한 것이다. 날짜는 문자열 형태로 저장되어 있다.
# 문자열을 datetime 형식으로 변환
df['date'] = pd.to_datetime(df['date'])
print("날짜 컬럼을 datetime 형식으로 변환:")
print(df)
pandas.to_datetime()
함수를 사용해 문자열 형태의 날짜를 datetime
형식으로 변환할 수 있다.
이를 통해 날짜 관련 연산이나 필터링을 쉽게 수행할 수 있다.
- pd.to_datetime(column):
pandas
에서 문자열 형태의 날짜 데이터를datetime
형식으로 변환한다. 날짜 데이터를 기준으로 정렬하거나 분석할 때 필수적이다.
# 날짜를 기준으로 데이터 필터링
filtered_df = df[df['date'] > pd.to_datetime("2024-10-11")]
print("2024-10-11 이후의 데이터:")
print(filtered_df)
날짜를 기준으로 데이터를 필터링하는 방법이다. 위 예시에서는 2024년 10월 11일 이후의 데이터를 필터링하였다.
- 날짜 기준 필터링:
datetime
형식으로 변환된 날짜 컬럼을 기준으로 조건을 지정하여 데이터를 필터링할 수 있다. 이를 통해 특정 기간 동안의 데이터만을 분석할 수 있다.
# 날짜로부터 연도, 월, 일 추출
df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
df['day'] = df['date'].dt.day
print("날짜로부터 연도, 월, 일 추출:")
print(df)
pandas
의 .dt
접근자를 사용해 날짜로부터 연도, 월, 일 등의 정보를 추출할 수 있다. 이를 통해 날짜 데이터를 더 세밀하게 분석할 수 있다.
- .dt 접근자:
datetime
형식의 컬럼에서 연도, 월, 일 등을 쉽게 추출할 수 있게 해주는 접근자이다. 데이터의 특정 시점에 대한 정보를 세분화하여 분석하는 데 유용하다.
결론
datetime
과 timedelta
를 사용하면 날짜와 시간을 간편하게 생성하고 계산할 수 있다.
또한, pandas
는 대량의 날짜 데이터를 효과적으로 처리할 수 있는 다양한 기능을 제공한다.
이 도구들을 잘 활용하면 날짜와 시간을 다루는 작업을 효율적으로 처리할 수 있다.
이 글에서 다룬 예시들을 통해 파이썬에서 날짜 데이터를 다루는 다양한 방법을 익힐 수 있을 것이다.
날짜와 시간을 다루는 작업은 데이터 분석에서 매우 중요하기 때문에 이러한 도구들을 잘 활용하는 것이 중요하다.
'Programming > Python' 카테고리의 다른 글
파이썬 주식데이터 다루기 - 데이터 불러오기, 주가 및 이동평균 시각화 (0) | 2024.10.25 |
---|---|
Matplotlib 한글 깨지는 문제 해결하기 (윈도우, 맥 plt 한글깨짐) (0) | 2024.10.24 |
파이썬 Collections 라이브러리 사용법 - deque, Counter 등 (0) | 2024.10.13 |
[SQLAlchemy] Python과 SQL 데이터베이스 연동하기 (postgresql) (0) | 2024.10.12 |
Python Web Scraping: BeautifulSoup vs. Selenium - 사용법과 차이점 (0) | 2024.10.10 |