[Pandas] 시간 데이터 처리
- Python/Pandas
- 2021. 2. 5.
반응형
반응형
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 메뉴얼을 참고해주시기 바랍니다.
'Python > Pandas' 카테고리의 다른 글
[Pandas] DataFrame 시간 인덱스 나누기 (4) | 2021.02.13 |
---|---|
[Pandas] DataFrame 합치기(Merge) (0) | 2021.02.10 |
[Pandas]DataFrame 시간간격 재조정(Resampling) (0) | 2021.02.03 |
[Pandas] DataFrame 결측치(NaN) 처리 (0) | 2021.01.30 |
Pandas로 xlsx 안 열어질 때 (0) | 2021.01.01 |