반응형
Pandas를 하다 보면 언젠가 고민하게 되는 날짜와 시간 다루기에 대해 알아보겠습니다.
Pandas에서는 일자시간타입(datatime64)데이터를 이용하여 여러 데이터를 다룰 수 있는데요.
to_datatime 함수만 잘 다루면 사실 끝날 수 있습니다. 간단한 예제를 보시려면 이곳을 확인하세요.
실습을 위해 아래와 같은 기본 데이타는 아래와 같습니다.
import pandas as pd
df = pd.DataFrame({'Birth':['2019-01-01 09:10:00', '2019-01-08 09:20:30']})
print(df.info())
아래와 같이 같이 object형으로 구성이 되어 있습니다.
RangeIndex: 2 entries, 0 to 1
Data columns (total 1 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Birth 2 non-null object
dtypes: object(1)
memory usage: 144.0+ bytes
이것을 to_datetime으로 변환해 보겠습니다.
df['Birth'] = pd.to_datetime(df['Birth'], format='%Y-%m-%d %H:%M:%S', errors='raise')
print(df.info())
데이타 형태가 datetime64 형으로 변환이 됩니다. 이제 이를 이용해 여러 변환을 할 수 있습니다.
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Data columns (total 1 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Birth 2 non-null datetime64[ns]
dtypes: datetime64[ns](1)
memory usage: 144.0 bytes
to_datetime의 format의 대표적인 유형은 아래와 같습니다. 사실 아래만 알아도 대부분 응용이 가능합니다. to_datetime의 Return은 Series형태가 되므로 pandas.series를 확인하면 됩니다.
Y: Year, ex) 2019, 2020
%m: Month as a zero-padded, ex) 01~12
%d: Day of the month as a zero-padded ex) 01~31
%H: Hour (24-hour clock) as a zero-padded ex) 01~23
%M: Minute as a zero-padded ex) 00~59
%S: Second as a zero-padded ex) 00~59
ex) 2019-09-01 19:30:00 =(Directivs)=> %Y-%m-%d %H:%M:%S
그 외에도 매우 여러 가지 dt. 함수들이 있습니다. 잘 사용하면 프로그램을 대폭 감소시킬 수 있으니 참고 바랍니다.
print('YYYY-MM-DD 형태: \n', df['Birth'].dt.date)
print('YYYY 형태: \n', df['Birth'].dt.year)
print('MM 형태: \n', df['Birth'].dt.month)
print('월(문자) 형태: \n', df['Birth'].dt.month_name())
print('일 형태: \n', df['Birth'].dt.day)
print('HH:MM:SS 형태: \n', df['Birth'].dt.time)
print('Hour 형태: \n', df['Birth'].dt.hour)
print('Minute 형태: \n', df['Birth'].dt.minute)
print('Second 형태: \n', df['Birth'].dt.second)
print('달의 마지막 날 여부 \n'df['Birth'].dt.is_month_end)
print('요일이름 형태: \n', df['Birth'].dt.day_name())
반응형
'Pandas' 카테고리의 다른 글
Pandas Sidetable: 판다스 똑똑하게 사용하기 - Freq, Counts, Missing, Subtotal (0) | 2021.04.16 |
---|---|
데이타 결측치(누락값, 결측값) 처리하기 : fillna (ffill, bfill), dropna, isnull (0) | 2020.12.07 |
Pandas, read_excel()을 이용한 데이타 읽은 후 K-Means에 적용하기: 실습 (0) | 2020.11.27 |
Pandas 기초 통계를 위한 groupby 응용 - nunique()와 matplot로 그래프 간단하게 그리기 (0) | 2020.11.14 |
[TIP] Pycharm, Run Window에서 결과 값 전체 보이게 하기 (0) | 2020.11.01 |
Pandas 데이터 추출, 활용 하기 : loc, iloc 활용 [슬라이싱] (0) | 2020.10.14 |
Pandas 데이터 추출, 활용 하기 : loc, iloc 활용 [행단위] (0) | 2020.10.09 |
Pandas(판다스)로 데이터 핸들링 : 기본 : info(), describe(), value_counts(), head() (1) | 2020.10.04 |