시계열 데이터에서 원하는 날짜만 선택하기 (슬라이싱)
- 프로그래밍/PYTHON
- 2019. 6. 3.
파이썬의 데이터프레임 형식의 시계열데이터에서 원하는 시계열 자료만 추출하는 법을 알아보자.
우선 기본적으로 데이터를 만들어 불러오는 코드를 생성하자. 여기서는 삼성전자(sec)의 데이터를 생성해서 알아본다.
1 2 3 4 5 6 7 8 9 10 11 | import pandas as pd import pandas_datareader as pdr import datetime Start = datetime.datetime(2010,1,1) End = datetime.datetime(2015,1,13) sec= pdr.get_data_yahoo("005930.KS", start = Start, end = End) | cs |
코드를 실행하면 sec라는 변수에 데이터가 담겨있는 것을 알수 있다.
tail함수로 뒷 부분만 잠시 살펴보면 다음과 같다.
1 2 3 4 5 6 7 8 9 10 | sec.tail() Out[19]: High Low Open Close Volume Adj Close Date 2015-01-08 26780.0 26200.0 26780.0 26280.0 14477600.0 257.229523 2015-01-09 26440.0 26280.0 26280.0 26280.0 9312400.0 257.229523 2015-01-12 26380.0 26020.0 26260.0 26320.0 8325400.0 257.621002 2015-01-13 26800.0 26000.0 26280.0 26780.0 12293400.0 262.123505 2015-01-14 27100.0 26700.0 26780.0 26900.0 14332250.0 263.298065 | cs |
현재 데이터는 2010, 1,1 부터 2015,1,13까지의 데이터를 가지고 있는데 이중에서 2013년 데이터만 가져오는 걸 해보도록 하자.
1 | sec['2013-01-01':'2013-12-31'] | cs |
위의 코드가 실제로 슬라이식을 하려는 코드이다. 다른 기간을 슬라이싱 하려면 숫자만 변경해 주면 된다.
결과는 아래와 같다.
sec['2013-01-01':'2013-12-31']
Out[20]:
High Low Open Close Volume Adj Close
Date
2013-01-02 31520.0 30540.0 30660.0 31520.0 11449650.0 42.188969
2013-01-03 31680.0 30860.0 31640.0 30860.0 14227400.0 41.305569
2013-01-04 30840.0 30200.0 30800.0 30500.0 12999800.0 40.823719
2013-01-07 30560.0 30000.0 30300.0 30400.0 12610950.0 40.689869
2013-01-08 30340.0 29960.0 30260.0 30000.0 13822250.0 40.154469
2013-01-09 30260.0 29820.0 30000.0 30000.0 12659950.0 40.154469
2013-01-10 30680.0 30000.0 30300.0 30600.0 14663600.0 40.957561
2013-01-11 30960.0 30140.0 30960.0 30660.0 11913550.0 41.037868
2013-01-14 31040.0 30560.0 30780.0 31040.0 7999950.0 41.546490
2013-01-15 31200.0 30240.0 31200.0 30240.0 10727150.0 40.475712
2013-01-16 30520.0 29660.0 30280.0 29840.0 16221000.0 39.940315
2013-01-17 30040.0 29000.0 30040.0 29380.0 20236700.0 39.324619
2013-01-18 29740.0 29100.0 29600.0 29600.0 12516600.0 39.619080
2013-01-21 29500.0 28960.0 29280.0 29080.0 14519650.0 38.923069
2013-01-22 29740.0 28900.0 28900.0 29600.0 11947400.0 39.619080
2013-01-23 30040.0 29460.0 30000.0 29460.0 9293550.0 39.431698
2013-01-24 29380.0 28820.0 29360.0 29060.0 15999050.0 38.896301
2013-01-25 29220.0 28100.0 29200.0 28340.0 21795250.0 37.932602
2013-01-28 28020.0 27420.0 27920.0 27440.0 30852150.0 36.727966
2013-01-29 28360.0 27600.0 27800.0 28180.0 21616550.0 37.718437
2013-01-30 28800.0 28240.0 28520.0 28800.0 16170100.0 38.548294
2013-01-31 28960.0 28440.0 28600.0 28960.0 16052800.0 38.762455
2013-02-01 29200.0 28440.0 29200.0 28820.0 11576200.0 38.575058
2013-02-04 29060.0 28340.0 29000.0 28740.0 12861900.0 38.467983
2013-02-05 28860.0 28280.0 28300.0 28700.0 11388100.0 38.414448
2013-02-06 28860.0 28540.0 28800.0 28540.0 6897150.0 38.200291
2013-02-07 28780.0 28400.0 28780.0 28400.0 9721100.0 38.012909
2013-02-08 29400.0 28300.0 28360.0 29240.0 13423850.0 39.137226
2013-02-12 29680.0 29180.0 29680.0 29360.0 8419750.0 39.297848
2013-02-13 29780.0 29120.0 29480.0 29740.0 9209050.0 39.806465
... ... ... ... ... ...
2013-11-18 29520.0 29300.0 29400.0 29480.0 6386800.0 40.256573
2013-11-19 29780.0 29540.0 29660.0 29780.0 8183550.0 40.666233
2013-11-20 29740.0 29280.0 29460.0 29400.0 8178150.0 40.147327
2013-11-21 29440.0 28640.0 29440.0 28800.0 9019800.0 39.327991
2013-11-22 29120.0 28620.0 28820.0 29000.0 8574600.0 39.601109
2013-11-25 29440.0 29020.0 29020.0 29300.0 6615300.0 40.010773
2013-11-26 29580.0 29100.0 29160.0 29580.0 8586250.0 40.393135
2013-11-27 29520.0 29200.0 29340.0 29400.0 9351700.0 40.147327
2013-11-28 29880.0 29580.0 29600.0 29880.0 10644900.0 40.802792
2013-11-29 29980.0 29700.0 29980.0 29880.0 6752200.0 40.802792
2013-12-02 30060.0 29340.0 30000.0 29340.0 7487800.0 40.065392
2013-12-03 29560.0 29140.0 29280.0 29220.0 7798600.0 39.901520
2013-12-04 29060.0 28620.0 29000.0 28640.0 10844000.0 39.109501
2013-12-05 28920.0 28440.0 28660.0 28800.0 10479650.0 39.327991
2013-12-06 29080.0 28560.0 29080.0 28560.0 9147450.0 39.000256
2013-12-09 29080.0 28800.0 28800.0 29080.0 6996900.0 39.710354
2013-12-10 29020.0 28620.0 28820.0 28800.0 7755600.0 39.327991
2013-12-11 28880.0 28320.0 28520.0 28400.0 10629150.0 38.781773
2013-12-12 28200.0 27920.0 27920.0 28200.0 14962050.0 38.508663
2013-12-13 28220.0 27800.0 28200.0 27800.0 10053250.0 37.962433
2013-12-16 28080.0 27660.0 27820.0 28000.0 8954400.0 38.235546
2013-12-17 28340.0 27860.0 28340.0 27900.0 7762400.0 38.098995
2013-12-18 28200.0 27880.0 28100.0 28020.0 10899200.0 38.262859
2013-12-19 28680.0 28360.0 28360.0 28540.0 10552400.0 38.972950
2013-12-20 28540.0 28260.0 28260.0 28540.0 8407400.0 38.972950
2013-12-23 28760.0 28580.0 28740.0 28660.0 10639200.0 39.136814
2013-12-24 28640.0 28300.0 28600.0 28300.0 10980350.0 38.645218
2013-12-26 28300.0 28020.0 28160.0 28160.0 12307800.0 38.454044
2013-12-27 28220.0 27900.0 28200.0 27920.0 10510000.0 74.765793
2013-12-30 27940.0 27200.0 27920.0 27440.0 16908100.0 73.480415
[247 rows x 6 columns]
'프로그래밍 > PYTHON' 카테고리의 다른 글
[기초 파이썬 -01] 리스트의 복사 (0) | 2020.11.05 |
---|---|
Slacker를 활용한 소스 (0) | 2019.11.02 |
lambda 함수 사용 (0) | 2019.08.21 |
현재 working directory 확인하고 변경하기 (0) | 2019.08.15 |
pandas Series와 파이썬 리스트 그리고 numpy의 ndarray 비교 (0) | 2019.08.09 |