반응형
Notice
Recent Posts
Recent Comments
Link
개발은 처음이라 개발새발
파이썬 날짜 인덱스 활용 - 시계열 데이터 활용2 [python/pandas] 본문
반응형
이번 시간엔는 timestamp와 period를 가지고 인덱스로 활용하는 방법에 대해서 알아보겠습니다. 두가지를 인덱스로 활용하게 되면 기간별로 데이터를 분석하는 데 있어 굉장히 용이하겠죠? 기간별로 데이터를 분류하고 분석하는 것은 어찌보면 데이터분석에 있어 가장 많이 활용되고 기본적인 것이니 알아둔다면 도움이 많이 될 것으로 보입니다. 그렇다면 바로 코딩을 살펴보겠습니다. 인덱스로 지정하는 것은 그동안 많이 사용된 df.set_index()함수를 활용하면 됩니다.
import pandas as pd
df = pd.read_csv('stock-data.csv')
#Date 타입 변경
df['new_date'] = pd.to_datetime(df['Date'])
df.set_index('new_date', inplace=True)
print(df.head(),'\n')
print(df.index,'\n')
Date Close Start High Low Volume
new_date
2018-07-02 2018-07-02 10100 10850 10900 10000 137977
2018-06-29 2018-06-29 10700 10550 10900 9990 170253
2018-06-28 2018-06-28 10400 10900 10950 10150 155769
2018-06-27 2018-06-27 10900 10800 11050 10500 133548
2018-06-26 2018-06-26 10800 10900 11000 10700 63039
DatetimeIndex(['2018-07-02', '2018-06-29', '2018-06-28', '2018-06-27',
'2018-06-26', '2018-06-25', '2018-06-22', '2018-06-21',
'2018-06-20', '2018-06-19', '2018-06-18', '2018-06-15',
'2018-06-14', '2018-06-12', '2018-06-11', '2018-06-08',
'2018-06-07', '2018-06-05', '2018-06-04', '2018-06-01'],
dtype='datetime64[ns]', name='new_date', freq=None)
네 이렇게 인덱스로 변환했더니 DatetimeIndex라는 속성으로 변환된 것을 확인할 수 있습니다. 이를 가지고 데이터를 추출해볼건데요. 날짜 인덱스의 장점은 연도, 월, 일자 중에서 본인이 필요로 하는 것을 선택적으로 인덱싱할 수 있다는 것입니다. 그리고 날짜 범위로도 슬라이싱이 가능합니다. 코딩을 통해 예시를 살펴보겠습니다.
#Date 컬럼 지우기
df= df.drop(['Date'], axis='columns')
#날짜 인덱스를 이용해 데이터 선택하기
df_y = df['2018']
print(df_y.head(),'\n')
df_ym = df.loc['2018-07']
print(df_ym.head(),'\n')
df_ym_cols = df.loc['2018-07','Start':'High']
print(df_ym_cols.head(),'\n')
df_ymd = df['2018-07-02']
print(df_ymd.head(),'\n')
df_ymd_range = df['2018-06-19':'2018-06-25']
print(df_ymd_range,'\n')
Close Start High Low Volume
new_date
2018-07-02 10100 10850 10900 10000 137977
2018-06-29 10700 10550 10900 9990 170253
2018-06-28 10400 10900 10950 10150 155769
2018-06-27 10900 10800 11050 10500 133548
2018-06-26 10800 10900 11000 10700 63039
Close Start High Low Volume
new_date
2018-07-02 10100 10850 10900 10000 137977
Start High
new_date
2018-07-02 10850 10900
Close Start High Low Volume
new_date
2018-07-02 10100 10850 10900 10000 137977
Close Start High Low Volume
new_date
2018-06-25 11150 11400 11450 11000 55519
2018-06-22 11300 11250 11450 10750 134805
2018-06-21 11200 11350 11750 11200 133002
2018-06-20 11550 11200 11600 10900 308596
네 이렇게 데이터들을 날짜 인덱스를 활용해 추출해봤습니다. 저는 업무상 스포츠데이터를 많이 다루기 때문에 무엇보다 기간과 날짜별로 분류하고 분석하는 것을 자주 사용하는데요. 공부하면서 굉장히 유용하게 써먹을 수 있겠다는 생각이 들었던 파트입니다. 이 글을 보신 분들도 분석에 있어 유용하게 사용하시길 바라겠습니다.
반응형
'파이썬 > 판다스' 카테고리의 다른 글
isin()매소드를 활용한 필터링 [python/pandas] (0) | 2022.08.19 |
---|---|
파이썬으로 필터링하기 [python/pandas] (0) | 2022.08.15 |
파이썬 날짜 분리 - 시계열 데이터 활용1 [python/pandas] (0) | 2022.08.11 |
Timestamp & Period 배열 [python/pandas] (0) | 2022.08.11 |
파이썬 데이터 정규화[python/pandas] (0) | 2022.08.07 |