본문 바로가기

프로그래밍 언어/Python

[Python] 넘파이/판다스 타임 시리즈: datetime64, pd.to_datetime(), pd.to_timedelta(), pd.date_range()

반응형

시간 관련 설명:

 

strftime section

datetime documentation

dateutil's online documentation


- 시간에 따라서 달려있는 데이터를 타임시리즈 데이터라고 한다.

넘파이 타임 시리즈: datetime64

기존의 파이썬 datetime 을 보강하기 위해, date 의 array 도 처리할 수 있게 numpy 에서 64-bit 로 처리하도록 라이브러리를 강화했음.

 

import numpy as np
any_date = np.array('2022-05-11',dtype = np.datetime64)

ㄴ 뒤에 np.datetime64에서 앞에 얘는 문자가 아니라, 날짜다. 라는 뜻

 

ex) 45일 전의 날짜, 10일 전의 날짜, 10치의 데이터 등

(바로바로 계산 가능)

 

판다스 타임 시리즈: pd.to_datetime()

 

import pandas as pd

dates = ['2022-01-04','2022-01-07','2022-01-08','2022-01-22']

dates1 = pd.to_datetime(dates)


ㄴ 알아서, dtype을 datetime64으로 바꿔준다.

ㄴ 우리 눈으로 보기엔 문자열같지만, 문자열이 아닌 이유는 dtype이 datetime64이기 때문. 그래서 얘는 문자열이 아님. 

ㄴ dates1+1 는 에러난다 

ㄴ 넘파이가 아니다.

 

pd.to_timedelta(np.arange(10),'D')

ㄴ ‘D' 날짜로 10개 만들어줘라 라는 뜻

 

ex) 일주일 단위로 만들어달라

 

 

판다스 타임 시리즈: pd.DatetimeIndex()

ㄴ to_datetime 랑 기본적으로 같다. 

 

- 데이터 기입시 참고 

Code Meaning Timespan(relative) Timespan(absolute)
Y Year ±9.2e18years [9.2e18BC,9.2e18AD]
M Month ±7.6e17years [7.6e17BC,7.6e17AD]
W Week ±1.7e17years [1.7e17BC,1.7e17AD]
D Day ±2.5e16years [2.5e16BC,2.5e16AD]
h Hour ±1.0e15years [1.0e15BC,1.0e15AD]
m Minute ±1.7e13years [1.7e13BC,1.7e13AD]
s Second ±2.9e12years [2.9e9BC,2.9e9AD]
ms Millisecond ±2.9e9years [2.9e6BC,2.9e6AD]
us Microsecond ±2.9e6years [290301BC,294241AD]
ns Nanosecond ±292years [1678AD,2262AD]
ps Picosecond ±106days [1969AD,1970AD]
fs Femtosecond ±2.6hours [1969AD,1970AD]
as Attosecond ±9.2seconds [1969AD,1970AD]

 

시작과 종료일을 세팅하면, 날짜 채움: pd.date_range()

ㄴ 시작일과 종료일을 셋팅하면, 알아서 날짜를 채우도록 하는 함수

 

pd.date_range('2022-05-04','2022-06-21')

ㄴ freq = 'D' 날짜 하루 단위로 만들었다는 뜻

ㄴ 디폴트 파라미터가 하루단위

 

 

ex) 시간단위

pd.date_range('2022-05-04','2022-06-21', freq = 'H')

 

ex) 일주일단위로 그리고 수요일만

pd.date_range('2022-05-04','2022-06-21', freq = 'W-WED')


반응형