Python/Fundamentals

시계열 데이터 - datetime

metamong 2022. 3. 24.

▧ python에서는 특별하게 datetime이라는 type이 존재한다 ▧

 

from datetime import datetime

 

→ 시계열 데이터로 바꾸기 위해서는 'xxxx-xx-xx (년-월-일)' data에 datetime()을 붙인다

 

dt = datetime(2022,1,24,21,30,42)

dt.year #2022
dt.month #1
dt.day #24
dt.hour #21
dt.minute #30
dt.second #42

 

→ 시계열 data는 indexing / slicing이 가능! (문자열과 다른 점)

 

ex) pandas_datareader를 이용해 data를 import하고 '삼성증시' dataframe을 가져온다고 하면

 

!pip install pandas_datareader
from pandas_datareader import data

sdf = data.get_data_yahoo('005930.KS','2017-01-01')
sdf

 

sdf

 

- sdf의 dtypes를 확인하면 index column의 dtype은 datetime이다

 

> 여기서 sdf['2019']를 해보면?

('2019'라는 row가 없는데도 불구하고 2019년에 해당하는 정보가 쭉 출력이 된다!) ← datetime형이어서 가능한 소리..!

 

sdf['2019']

 

- sdf의 2019년 info - 

 

 

> sdf['2019-01' : '2019-06']과 같이 slicing을 해서 2019년 1월 ~ 6월 data를 출력해본다면?

(1월부터 6월까지의 data가 쭉 출력이 된다) ← datetime형이어서 가능한 소리..!

 

sdf['2019-01' : '2019-06']

 

- sdf의 2019년 1월 ~ 6월 info - 

 

 

 

> 원하는 datetime형의 column에 year, month 등등을 보여줄 수 있다

> datetime형의 year, month 등등 연도별, 월별, 일별 시간대별로 groupby + agg function과 함께 집계현황도 볼 수 있다

(또는 dataframe의 method resample(rule = ~)을 이용해서 원하는 data를 출력할 수 있음)

 

g = sdf.groupby([sdf.index.year, sdf.index.month])
g.mean()

 

- 집계 결과 - 

 

 

(**) 그 외 자세한 건 '모두'! docu에

https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html


*출처) 2021 공공데이터 청년인턴(일경험수련생) 상시교육

'Python > Fundamentals' 카테고리의 다른 글

Python Basics(2). (from Coursera)  (0) 2022.04.13
Python Basics(1). (from Coursera)  (0) 2022.04.04
list comprehension  (0) 2022.03.20
Module & Package  (0) 2022.03.19
python intro. (03)  (0) 2022.03.19

댓글