always_here

지식을 공유하고 함께 성장하는 엔지니어 as_always 입니다

AS_ALWAYS

핀테크 교육/금융데이터 활용

시계열데이터 파이썬 (날짜와 시간 - pandas)

nauung_always 2022. 7. 4. 10:15
728x90

판다스는 테이블 데이터 및 시계열 데이터 구조를 조작하는 탁월한 기능을 제공하는 라이브러리

판다스는 내부적으로 넘파이를 포함하고 있어 날짜와 시간 관련 기능도 datetime64를 바탕으로 이루어지고 있다.

Timestamp와 DatetimeIndex

  • pd.Timestamp()
  • pd.to_datetime()
  • pd.date_range()
import pandas as pd
 
pd.Timestamp(1239.1238934# 디폴트 나노초
 
결과 : Timestamp('1970-01-01 00:00:00.000001239')
 
pd.Timestamp(1239.1238934, unit='D'# 단위를 '일'로 바꿔서 실행해봅시다.
 
결과 : Timestamp('1973-05-24 02:58:24.389760')
 
pd.Timestamp('2019-1-1')
 
결과 : Timestamp('2019-01-01 00:00:00')
 

Timestamp() 함수는 특정 시점을 나타내는 날짜와 시간을 표현한다.
판다스에서도 Timestamp 함수에 수치 데이터를 전달하고 unit(단위) 값을 매개변수로 넘기면 넘파이에서 살펴본 유닉스 시간을 이용한 방식임을 알 수 있다.

유닉스 시간 이용 : UTC 시간 '1970년 1월 1일 00:00:00'부터 현재까지 경과 시간을 초 단위로 환산해 나타낸 방식

pd.date_range('2019-01','2019-02')

date_range() 함수 : 특정 기간의 날짜를 자동 생성한다.
'2019-01'과 '2019-02'를 전달하면 출력 결과는 2월 말까지 데이터를 생성하는 것이 아니라 2월 1일자 데이터만 생성

Period와 PeriodIndex

  • pd.Period()
  • pd.period_range()
pd.Period('2019-01')
 
결과: Period('2019-01', 'M')
 
pd.Period('2019-05', freq='D')
 
결과 : Period('2019-05-01', 'D')
 
pd.period_range('2019-01','2019-02',freq='D')
 
결과 : 2019-01-01 ~ 2019-01-31, 2019-02-01
 

Timestamp Vs. Period

Timestamp는 한 시점을 뜻하고,
Period는 1일의 시작 시점부터 종료 시점까지의 범위를 포괄한다.

p = pd.Period('2019-06-13')
test = pd.Timestamp('2019-06-13 22:11')
p.start_time < test < p.end_time
 
p -> start_time (2019-06-13 00:00:00) end_time (2019-06-13 23:59:59.999999999) 을 가진다.
728x90