Python/Pandas

Pandas 날짜 데이터 처리 (to_datetime(), dt 속성 활용)

임베디드 친구 2025. 10. 7. 21:04
반응형

Pandas 날짜 데이터 처리 (to_datetime(), dt 속성 활용)

데이터 분석을 수행할 때 날짜 데이터 처리는 필수적인 과정 중 하나입니다. Pandas는 to_datetime() 함수와 dt 속성을 제공하여 날짜 데이터를 효율적으로 변환하고 다룰 수 있도록 지원합니다. 이번 포스팅에서는 날짜 데이터를 처리하는 방법을 다양한 예제와 함께 알아보겠습니다.

1. to_datetime()을 이용한 날짜 변환

1.1 기본적인 날짜 변환

Pandas의 to_datetime() 함수는 문자열이나 숫자로 저장된 날짜 데이터를 datetime 타입으로 변환하는 기능을 합니다.

import pandas as pd

# 문자열 날짜를 datetime으로 변환
date_series = pd.Series(['2023-01-01', '2023-06-15', '2023-12-31'])
date_series = pd.to_datetime(date_series)
print(date_series)

출력:

0   2023-01-01
1   2023-06-15
2   2023-12-31
dtype: datetime64[ns]

1.2 날짜 형식 지정하기

날짜 형식이 다양한 경우 format 매개변수를 사용하여 변환할 수 있습니다.

date_series = pd.Series(['01-02-2023', '15-06-2023', '31-12-2023'])
date_series = pd.to_datetime(date_series, format='%d-%m-%Y')
print(date_series)

1.3 숫자로 된 날짜 변환

엑셀에서 날짜가 숫자로 저장된 경우도 to_datetime()을 활용하여 변환할 수 있습니다.

date_series = pd.Series([44605, 44620, 44635])
date_series = pd.to_datetime(date_series, origin='1899-12-30', unit='D')
print(date_series)

2. dt 속성을 활용한 날짜 데이터 조작

Pandas의 dt 속성을 사용하면 날짜 데이터에서 연도, 월, 일, 요일 등을 쉽게 추출할 수 있습니다.

2.1 날짜 데이터에서 연도, 월, 일 추출

df = pd.DataFrame({'date': pd.to_datetime(['2023-01-01', '2023-06-15', '2023-12-31'])})
df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
df['day'] = df['date'].dt.day
print(df)

2.2 요일 정보 추출

요일을 숫자 또는 문자열로 가져올 수 있습니다.

df['weekday'] = df['date'].dt.weekday  # 0: 월요일, 6: 일요일
df['weekday_name'] = df['date'].dt.day_name()
print(df)

2.3 분기 및 주차 정보 추출

df['quarter'] = df['date'].dt.quarter  # 분기 (1~4)
df['week_of_year'] = df['date'].dt.isocalendar().week  # ISO 주차
print(df)

3. 날짜 연산 및 필터링

3.1 날짜 간 차이 계산

df['prev_date'] = df['date'].shift(1)
df['date_diff'] = df['date'] - df['prev_date']
print(df)

3.2 특정 기간 데이터 필터링

date_series = pd.date_range(start='2023-01-01', periods=10, freq='D')
df = pd.DataFrame({'date': date_series})
filtered_df = df[(df['date'] >= '2023-01-05') & (df['date'] <= '2023-01-08')]
print(filtered_df)

4. 날짜 데이터 변환 및 포맷 변경

4.1 날짜 포맷 변경

df['formatted_date'] = df['date'].dt.strftime('%Y/%m/%d')
print(df)

4.2 타임스탬프 변환

타임스탬프(Unix timestamp)는 초 단위로 변환할 수 있습니다.

df['timestamp'] = df['date'].astype(int) / 10**9
print(df)

5. 결론

Pandas의 to_datetime()dt 속성을 활용하면 날짜 데이터를 쉽게 변환하고 가공할 수 있습니다. 날짜 데이터를 다룰 때는 데이터 형식을 올바르게 지정하고, 필요한 정보를 추출하여 분석하는 것이 중요합니다. 위에서 소개한 기능을 활용하여 더욱 효율적인 데이터 분석을 진행해 보시기 바랍니다.

반응형