판다의 시간 서열 분석
14959 단어 datasciencepythontutorialpandas
시간 시퀀스 데이터
시간 서열 데이터는 시간 순서에 따라 배열된 일련의 데이터 포인트로 기업은 이런 데이터 포인트를 이용하여 과거의 데이터를 분석하고 미래의 예측을 한다.이러한 데이터 포인트는 지정된 시간과 같은 간격의 관찰 값으로 일반적으로 날짜 시간 인덱스와 상응하는 값을 가진다.일상적인 시간 시퀀스 데이터의 일반적인 예는 다음과 같습니다.
시간 시퀀스 데이터의 변화
트렌드 변화: 오랜 시간 동안 합리적이고 예측 가능한 모델로 위로 이동하거나 아래로 이동한다.
계절적 변화: 규칙성과 주기성;하루, 일주일, 한 달, 한 계절 등 특정 시간대에 반복
주기적 변화: 상업 또는 경제의'번영-불황'주기와 대응하거나 다른 형식으로 주기적
무작위 변화: 불안정 또는 잔여;상술한 세 가지 분류 중의 어떤 것도 속하지 않는다.
인벤토리 데이터 및 필요한 Python 라이브러리 가져오기
판다를 어떻게 사용하여 주식 분석을 하는지 보여주기 위해 2013년부터 2018년까지의 아마존 주식 가격을 사용합니다.우리는 Quandl에서 데이터를 얻고 있습니다. Quandl은 주문식 시장 데이터를 얻기 위해 Python API를 제공하는 회사입니다.이 문서의 CSV 파일은 문서의 저장소에서 다운로드할 수 있습니다.
선택한 편집기를 시작하고 다음 코드를 입력하여 본문에 대응하는 라이브러리와 데이터를 가져옵니다.
본문의 예시 코드는 Github의 Kite Blog repository 에서 찾을 수 있습니다.
# Importing required modules
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Settings for pretty nice plots
plt.style.use('fivethirtyeight')
plt.show()
# Reading in the data
data = pd.read_csv('amazon_stock.csv')
아마존 주식 가격 초보 탐색
데이터 세트의 첫 번째 열을 살펴보겠습니다.
# Inspecting the data
data.head()
데이터 집합에 어떤 값도 추가하지 않기 때문에 앞의 두 열을 없애자.
data.drop(columns=['None', 'ticker'], inplace=True)
data.head()
이제 각종 구성 요소의 데이터 형식을 봅시다.
data.info()
날짜 열은 날짜가 아닌 문자열로 간주되는 것 같습니다.이 문제를 해결하기 위해서, 우리는 판다스
to_datetime()
특성을 사용하여 파라미터를 날짜로 변환할 것입니다.# Convert string to datetime64
data['Date'] = data['Date'].apply(pd.to_datetime)
data.info()
마지막으로, 우리는 날짜열이 색인열임을 확보해야 한다.data.set_index('Date', inplace=True)
data.head()
현재, 우리의 데이터는 이미 필요한 형식으로 바뀌었으니, 그것의 열을 보고 진일보한 분석을 진행하자.
Adj_Close
열은 조정된 마감가, 또는 주식이 정해진 거래일의 마감가를 표시하며, 수정된 후에는 다음날 개장 전 언제든지 발생하는 어떠한 분배와/또는 회사 행위를 포함한다.역사적 수익을 검사하거나 상세하게 분석할 때 조정된 마감가를 자주 사용한다.data['Adj_Close'].plot(figsize=(16,8),title='Adjusted Closing Price')
흥미로운 것은 2013-2018년 창구기 동안 아마존의 주가가 많든 적든 안정적으로 상승한 것 같다는 점이다.우리는 이제 판다를 사용하여 이 데이터를 분석하고 처리하여 견해를 얻을 것이다.
시간 시퀀스 분석용 판다
판다스는 금융 모델링 배경에서 개발된 것이기 때문에 날짜, 시간, 시간 인덱스 데이터를 처리하는 종합 도구를 포함한다.시간 시퀀스 데이터를 처리하는 주요 데이터 구조를 봅시다.
작업 날짜 시간
파이썬 처리 날짜와 시간의 기본 도구는 내장
datetime
모듈에 있습니다.pandas에서 단일 시점은 pandas.Timestamp
, 우리는 datetime()
함수를 사용하여 각종 날짜/시간 형식의 문자열에서 datetime
대상을 만들 수 있습니다.날짜 시간은 pandas.Timestamp
과 바꿀 수 있습니다.from datetime import datetime
my_year = 2019
my_month = 4
my_day = 21
my_hour = 10
my_minute = 5
my_second = 30
우리는 현재 datetime
대상을 만들고 상기 속성을 지정한 상황에서 판다와 함께 자유롭게 사용할 수 있다.test_date = datetime(my_year, my_month, my_day)
test_date
# datetime.datetime(2019, 4, 21, 0, 0)
특정 데이터를 분석하기 위해 날짜, 월, 연도만 선택했지만 필요할 경우 시간, 분, 초 등 더 많은 세부 사항을 포함할 수 있습니다.test_date = datetime(my_year, my_month, my_day, my_hour, my_minute, my_second)
print('The day is : ', test_date.day)
print('The hour is : ', test_date.hour)
print('The month is : ', test_date.month)
# Output
The day is : 21
The hour is : 10
The month is : 4
우리의 주식 가격 데이터 집합에 대해 지수열의 유형은 DatetimeIndex
이다.우리는 판다를 사용하여 데이터 중의 최소와 최대 날짜를 얻을 수 있다.print(data.index.max())
print(data.index.min())
# Output
2018-03-27 00:00:00
2013-01-02 00:00:00
또한 다음과 같이 최신 날짜 위치와 이전 날짜 색인 위치를 계산할 수 있습니다.# Earliest date index location
data.index.argmin()
#Output
1315
# Latest date location
data.index.argmax()
#Output
0
시간 재샘플링
매일 주식 가격 데이터를 검사하는 것은 금융 기구에 별로 쓸모가 없다. 왜냐하면 금융 기구는 시장 추세를 발견하는 데 더욱 흥미를 가지기 때문이다.편의를 위해 우리는 시간별 샘플링 과정을 사용하여 데이터를 정의된 시간대, 예를 들어 월별 또는 분기별로 집합했다.그리고 기구는 주식 가격의 개황을 보고 이런 추세에 따라 결정을 내릴 수 있다.
판다 도서관에는 이런 시간 서열 데이터를 다시 샘플링하는 데 사용되는
resample()
함수가 있다.판다의 샘플링 방법은 본질적으로 특정 시간의 경계에 따라 조를 나누기 때문에 groupby
방법과 유사하다.resample()
함수는 다음과 같습니다.data.resample(rule = 'A').mean()
요약:data.resample()
주식 데이터를 다시 샘플링하는 데 사용한다.mean()
우리는 그동안의 평균 주가를 원한다고 밝혔다.다음은 오프셋 값의 전체 목록입니다.이 목록은 판다 문서에서도 찾을 수 있습니다.
시간 재샘플링의 오프셋 별칭
우리는 또한 시간 샘플링을 사용하여 특정 열의 도표를 그릴 수 있다.
data['Adj_Close'].resample('A').mean().plot(kind='bar',figsize = (10,4))
plt.title('Yearly Mean Adj Close Price for Amazon')
위의 줄무늬 그림은 우리의 데이터가 매년 말 아마존의 평균 조정 마감가에 집중되는 것에 대응한다.
이와 유사하게 매년 월별 최고 개장가는 다음과 같다.
아마존 매달 최고 개장가
시간 변환
때때로 우리는 데이터를 제때에 앞으로 이동하거나 뒤로 이동해야 할 수도 있다.이 이동은 필요한 주파수 증가수를 통해 시간 인덱스를 따라 진행된다.
... continue with Time Shifting, Kite Github 리셋 프로토콜의 코드를 보십시오.
Parul Pandey는 H2O의 데이터 과학 전도자이다.에화연 블로그의 저자.
Reference
이 문제에 관하여(판다의 시간 서열 분석), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kite/time-series-analysis-with-pandas-3472텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)