반응형
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
속성을 활용하면 날짜 데이터를 쉽게 변환하고 가공할 수 있습니다. 날짜 데이터를 다룰 때는 데이터 형식을 올바르게 지정하고, 필요한 정보를 추출하여 분석하는 것이 중요합니다. 위에서 소개한 기능을 활용하여 더욱 효율적인 데이터 분석을 진행해 보시기 바랍니다.
반응형
'Python > Pandas' 카테고리의 다른 글
Pandas에서 행과 열 선택: loc[], iloc[], at[], iat[] (0) | 2025.10.09 |
---|---|
Pandas 데이터 타입 변환 (astype()) - Pandas 데이터 변환과 가공 (0) | 2025.10.08 |
Pandas에서 문자열 데이터 다루기: str.contains(), str.replace() (0) | 2025.10.06 |
Pandas 컬럼 추가, 삭제 및 데이터 수정하기 (0) | 2025.10.05 |
Pandas 데이터 정렬 및 필터링 (sort_values(), query()) (0) | 2025.10.04 |