날짜와 시간
판다스에서 날짜와 시간을 다루는 방법을 알아보겠습니다.
import pandas as pd
문자열을 날짜와 시간으로 바꾸기
판다스에서는 날짜와 시간을 나타내기 위해 Timestmap
라는 자료형을 사용합니다. 문자열로 표시된 날짜와 시간을 Timestamp
로 바꾸려면 to_datetime
함수를 사용합니다. 아래는 2020년 2월 12일 15시 34분을 Timestamp
로 변환한 것입니다.
pd.to_datetime('2020-02-12 15:34')
Timestamp('2020-02-12 15:34:00')
일정 기간의 날짜 만들기
date_range
함수로 일정 기간의 날짜들을 만들 수 있습니다. 다음은 2020년 2월 12일부터 7일간의 날짜입니다.
pd.date_range('2020-02-12', periods=7)
DatetimeIndex(['2020-02-12', '2020-02-13', '2020-02-14', '2020-02-15', '2020-02-16', '2020-02-17', '2020-02-18'], dtype='datetime64[ns]', freq='D')
freq
를 이용해 날짜의 간격을 지정할 수 있습니다. 다음은 2020년 2월 12일부터 1주일 간격으로 7주간의 날짜입니다.
pd.date_range('2020-02-12', periods=7, freq='W')
DatetimeIndex(['2020-02-16', '2020-02-23', '2020-03-01', '2020-03-08', '2020-03-15', '2020-03-22', '2020-03-29'], dtype='datetime64[ns]', freq='W-SUN')
간격을 나타내는 주요 기호는 다음과 같습니다.
D
: 1일 간격W
: 1주 간격M
: 1개월 간격A
: 1년 간격
더 많은 기호는 링크를 참고하세요.
날짜, 시간에서 일부 정보만 추출
날짜, 시간에서 일부 정보만 추출하는 방법을 알아보겠습니다. 먼저 2020년 1월 2일 3시 45분과 2021년 12월 24일 23시 59분의 날짜, 시간을 만듭니다.
x = pd.to_datetime(['2020-01-02 03:45', '2021-12-24 23:59'])
.year
로 연도만 추출할 수 있습니다.
x.year
Int64Index([2020, 2021], dtype='int64')
.month
는 월
x.month
Int64Index([1, 12], dtype='int64')
.day
는 일
x.day
Int64Index([2, 24], dtype='int64')
.weekay
는 요일입니다. 0이 월요일, 1이 화, 2이 수, 3가 목, 4가 금, 5이 토, 그리고 6이 일요일입니다.
x.weekday
Int64Index([3, 4], dtype='int64')
.hour
는 시
x.hour
Int64Index([3, 23], dtype='int64')
.minute
은 분입니다.
x.minute
Int64Index([45, 59], dtype='int64')
기간 구하기
날짜와 날짜를 빼면 날짜 간격을 구할 수 있습니다.
diff = x - pd.to_datetime('2020-02-12 15:39')
2020년 1월 2일은 2020년 2월 12일보다 42일 전이고,2021년 12월 24일은 681일 후입니다.
diff.days
Int64Index([-42, 681], dtype='int64')
기간 더하기
기간을 나타낼 때는 Timedelta
를 사용합니다. 아래 예는 기존의 날짜에 15일씩 더하는 예입니다.
x + pd.Timedelta(days=15)
DatetimeIndex(['2020-01-17 03:45:00', '2022-01-08 23:59:00'], dtype='datetime64[ns]', freq=None)