본문 바로가기

💻프로그래밍/python

[파이썬] pd.date_range 시계열 데이터 처리

반응형

 

01. pd.date_range

1-1) pd.date_range 기본 사용법

pd.date_range함수를 사용하여 시작일과 종료일(또는 기간)을 입력하면 해당 범위 내의 데이터를 생성할 수 있다.

pd.date_range의 기본적인 사용법은 다음과 같다.

pd.date_range("start",'end")

start : 데이터의 시작 날짜/시간 지정

end : 데이터의 끝 날짜/시간 지정

 

 

 

 

1-2 ) pd.date_range 사용 예시 1

pd.date_range('2022-07-01', '2022-07-31')

 

해석) '2022년 07월 01'부터 '2022년 07월 31일'까지 날짜를 생성한다.

이때, 기본적으로 일별 생성이 디폴드값이다.(freq ='D')

 

 

1-3) pd.date_range 사용 예시 2

위의 코드를 periods를 사용하여 아래와 같은 방법으로도 동일한 결과를 출력할 수 있다.

pd.date_range('2022-07-01', periods=31)

 

 

 

1-4) pd.date_range 사용 예시 3

pd.date_range('2022-07-01 00:00:00','2022-07-31 12:00:00')

 

위와같이 날짜뿐만 아니라 날짜와 시간대까지 함께 설정할 수 있다. 위의 예시에서는 시간대도 함께 설정했지만 1,2번 예시와 결과는 동일한데, 그 이유는 해당 날짜/기간에 출력되는 데이터의 freq가 디폴드 값이 'D(1일 주기)'이기 때문이다. 따라서 위와 같은 경우에는 데이터가 생성되는 freq를 조정해주는 것이 필요하다.(본문 3번의 'freq설정' 참조)

 

 

 

 


 

02.  pd.date_range의 parameters(파라미터)

pd.date_range( )에 사용할 수 있는 파라미터는 다음과 같다.

 

start (필수) 데이터의 시작 날짜/시간 지정
end (필수) 데이터의 끝 날짜/시간 지정
periods 기간의 수 지정
freq 일/월/년 별 지정 ex)'5D'는 5일간격으로
tz 시간대(time zone)설정
normalize start나 end에 쓴 시간대를 자정으로 변경
name 인덱스의 이름 설정
closed 범위 포함 여부

 

 

 


 

03.  pd.date_range의 freq 설정

3-1) pd.date_range freq

약어 설명 활용
S 초 주기 freq = 'S' (1초 주기) 
freq = '10S' (10초 주기)
T / min 분 주기 freq = 'T' (1분 주기) 
freq = '30T'(30분 주기) , freq = '30min'(30분 주기)
D 달력 날짜 기준 하루 주기 freq = 'D' (하루 주기) 
freq = '30D' (30일 주기)
H 시간 기준 주기 freq = 'H' (1시간 주기)
freq = '2H' (2시간 주기)

 

 

 

 

3-2) pd.date_range freq 사용 예시

 

1️⃣ 해당 기간에 1초 주기로 데이터 생성 (freq = 'S')

pd.date_range('2022-07-01', '2022-07-31', freq='S')

 

 

 

 

2️⃣ 해당 기간에 30초 주기로 데이터 생성 (freq = '30S')

pd.date_range('2022-07-01', '2022-07-31', freq='30S')

 

 

 

 

3️⃣ 해당 기간에 1분 주기로 데이터 생성 (freq = 'T') 또는 (freq = 'min')

pd.date_range('2022-07-01', '2022-07-31', freq='T')

 

 

 

 

 

4️⃣ 해당 기간에 2분 주기로 데이터 생성 (freq = '2T') 또는 (freq = '2min')

pd.date_range('2022-07-01', '2022-07-31', freq='2T')
pd.date_range('2022-07-01', '2022-07-31', freq='2min')

 

 

 

 

5️⃣ 해당 기간에 1시간 단위로 데이터 생성 (freq = 'H'

pd.date_range('2022-07-01', '2022-07-31', freq='H')

 

 

 

 

 

6️⃣ 해당 기간에 2시간 단위로 데이터 생성(freq= '2H'

pd.date_range('2022-07-01', '2022-07-31', freq='2H')

 

 

 

 

🖇참고 문헌

https://pandas.pydata.org/docs/reference/api/pandas.date_range.html

반응형