판다의 시간 서열 분석

우리는 Python 3, pandas, Matplotlib를 사용하여 주식 데이터를 분석할 것이다.본고에서 충분히 이익을 얻기 위해서는 판다스의 기초 지식과 Matplotlib라는 그림 라이브러리를 익혀야 합니다.

시간 시퀀스 데이터


시간 서열 데이터는 시간 순서에 따라 배열된 일련의 데이터 포인트로 기업은 이런 데이터 포인트를 이용하여 과거의 데이터를 분석하고 미래의 예측을 한다.이러한 데이터 포인트는 지정된 시간과 같은 간격의 관찰 값으로 일반적으로 날짜 시간 인덱스와 상응하는 값을 가진다.일상적인 시간 시퀀스 데이터의 일반적인 예는 다음과 같습니다.
  • 날씨 온도 측정
  • 매달 택시 탑승 횟수 측정
  • 회사의 다음날 주가 예측
  • 시간 시퀀스 데이터의 변화


  • 트렌드 변화: 오랜 시간 동안 합리적이고 예측 가능한 모델로 위로 이동하거나 아래로 이동한다.

  • 계절적 변화: 규칙성과 주기성;하루, 일주일, 한 달, 한 계절 등 특정 시간대에 반복

  • 주기적 변화: 상업 또는 경제의'번영-불황'주기와 대응하거나 다른 형식으로 주기적

  • 무작위 변화: 불안정 또는 잔여;상술한 세 가지 분류 중의 어떤 것도 속하지 않는다.
  • 다음은 시각화된 시간 시퀀스 데이터의 네 가지 변형입니다.

    인벤토리 데이터 및 필요한 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() 주식 데이터를 다시 샘플링하는 데 사용한다.
  • 'A'는 연말 주파수를 나타내며 우리가 데이터를 다시 샘플링하고 싶은 편이치를 나타낸다.
  • mean()우리는 그동안의 평균 주가를 원한다고 밝혔다.
  • 출력은 아래와 같이 매년 12월 31일의 평균 재고 데이터를 나타낸다

    다음은 오프셋 값의 전체 목록입니다.이 목록은 판다 문서에서도 찾을 수 있습니다.

    시간 재샘플링의 오프셋 별칭
    우리는 또한 시간 샘플링을 사용하여 특정 열의 도표를 그릴 수 있다.
    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의 데이터 과학 전도자이다.에화연 블로그의 저자.

    좋은 웹페이지 즐겨찾기