[Pandas] 시간 데이터 처리

반응형
반응형

Pandas 내의 시간 데이터를 다루는 방법에 대해 알아보겠습니다.

 

시간데이터(datatime64) 타입으로 변경하기

시간데이터로 바꿔야만 되는 것들이 있습니다.

리샘플링을 할 경우에 시간데이터가 반드시 필요합니다.

그런데 보통 데이터를 받아오면 시간을 나타나는 데이터가 object로 표현되어 있습니다.

이럴 때 시간데이터로 타입으로 변경할 수 있습니다.

 

먼저 데이터를 불러오겠습니다.

import pandas as pd
df

 

 

다음과 같은 데이터를 가져와 보겠습니다. 

df.dtypes

타입을 보면 object 입니다.

이 object를 시간데이터인 datatime64 타입으로 변경하겠습니다.

df['Data'] = pd.to_datetime(df['Data'],format='%Y-%m-%d %H:%M:%S', errors='raise')
df.dtypes

to_datatime으로 datatime64 타입으로 바꿨습니다. format 파라미터에서 지정한 시간 포맷으로 바뀌게 됩니다.

 

시간데이터 처리

datatime64 타입으로 변경하면 시간에 대해 가공을 할 수 있는게 가장 큰 장점입니다.

내가 원하는 만큼 시간을 표시할 수 있습니다.

df['Data_date'] = df['Data'].dt.date  #YYYY-MM-DD
df['Data_year'] = df['Data'].dt.year  
df['Data_month'] = df['Data'].dt.month 
df['Data_month_name'] = df['Data'].dt.month_name()  #Month name ex) January, February ...
df['Data_day'] = df['Data'].dt.day  
df['Data_time'] = df['Data'].dt.time # HH:MM:SS
df['Data_hour'] = df['Data'].dt.hour 
df['Data_minute'] = df['Data'].dt.minute
df['Data_second'] = df['Data'].dt.second

df['Data_quarter'] = df['Data'].dt.quarter
df['Data_weekday_name'] = df['Data'].dt.day_name() #ex) Monday,Thusday
df['Data_total_days_in_month'] = df['Data'].dt.days_in_month # Total days in month 

제가 주로 쓰는 것 위주로 나열했습니다.

더 많은 메쏘드를 알고 싶다면 pandas 메뉴얼을 참고해주시기 바랍니다.

 

 

pandas.Series.dt.year — pandas 1.2.1 documentation

The year of the datetime. Examples >>> datetime_series = pd.Series( ... pd.date_range("2000-01-01", periods=3, freq="Y") ... ) >>> datetime_series 0 2000-12-31 1 2001-12-31 2 2002-12-31 dtype: datetime64[ns] >>> datetime_series.dt.year 0 2000 1 2001 2 2002

pandas.pydata.org

 

데이터목장님의
글이 좋았다면 응원을 보내주세요!

Designed by JB FACTORY