[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

    ....