quandl에서 소비자 물가 지수(CPI)를 얻고 급락률 계산

6734 단어 pandas파이썬quandl

소개



주식 투자를 시작한 것이 계기로 세계적인 경제나 금융에 흥미를 가지게 되었습니다.
지난번 는 Quandl 이라는 사이트에서 각국의 인플레이션율을 취득해 표시해 보겠다고 했습니다.
Quandl 에서는 인플레이션 비율 외에도 다양한 경제 지표를 WebAPI에서 얻을 수 있습니다.
이번은 개인적인 연구로 소비자 물가 지수(CPI)의 급락률을 원했기 때문에 Quandl 로 데이터를 취득해 pandas로 그 급락률을 계산해 보았습니다.

실행 환경


  • Windows 버전 20H2
  • Python 3.9.4
  • jupyterlab 3.0.16
  • Quandl 3.6.1
  • pandas 1.2.5

  • 코드 및 설명



    라이브러리 가져오기



    get_CPI.ipynb
    import quandl
    import pandas as pd
    

    임포트하는 모듈은 지난번 과 거의 같습니다만 이번에는 그래프를 파일 출력하지 않기 때문에 matplotlib 를 임포트하고 있지 않습니다.

    구성



    get_CPI.ipynb
    apikey = 'XXXXXXXX'
    datatype = {'USA':'RATEINF/CPI_USA',
               'Japan':'RATEINF/CPI_JPN'}
    

    APIKey는 지난번과 같습니다. 계정 등록 시 제공된 계정으로 교체하세요. 이번에는 미국과 일본의 데이터만을 원했기 때문에 datatype은 2개국만 정의하고 있습니다.
    또 지난번 은 인플레이션율의 취득이었으므로 심볼은 'RATEINF/INFLATION_XXX'이었습니다만 이번은 'RATEINF/CPI_XXX'를 지정하고 있는 점이 포인트입니다.
    자세한 내용은 RATEINF Infration Rates API 문서을 참조하십시오.

    데이터 획득 및 성형 및 출력



    get_CPI.ipynb
    # データ取得関数
    def getdata(dtype):
        data = quandl.get(dtype, column_index = '1')
        return data
    
    # APIキーのセット
    quandl.ApiConfig.api_key = apikey
    
    # データ取得
    for dk in datatype.keys():
        # データ取得
        tempdata = getdata(datatype[dk])
        tempdata.rename(columns = {'Value':dk + '_value'}, inplace = True)
        # NaNの穴埋め
        tempdata = tempdata.fillna(method = 'ffill')
        # 騰落率の計算
        tempdata['tempval'] = tempdata.pct_change()
        tempdata['RoR'] = tempdata['tempval'] * 100
        tempdata = tempdata.drop(columns = 'tempval')
        # CSVの出力
        tempdata.to_csv('CPI_' + dk + '.csv')
    

    이번은 quandl.get(~)로 기간을 지정하고 있지 않는 점이나 그래프 출력을 위해서(때문에) 테이블을 1개에 정리하고 있지 않는 등 지난번 보다 구조는 꽤 심플합니다.
    포인트로서는 급락률의 계산입니다. 급락률의 계산식은 여기 의 사이트를 참고로 했습니다. 다음과 같습니다.
    騰落率(%) = {(基準日の値 / 前回の値) - 1} * 100
    

    pandas의 pct_change 함수를 사용하면 {(기준일 값/마지막 값) - 1}까지의 계산이 이루어지기 때문에 다음 행에서 pct_change의 결과에 100을 곱하고 있다는 것을 코드에서 알 수 있을까 생각 합니다.

    출력되는 파일 예




    출력된 파일의 RoR 열이 급락률입니다.

    사이고에게



    어땠습니까? Python에서는 pandas 등 데이터를 다루는 강력한 라이브러리가 다수 있어 또 그것에 맞는 데이터를 제공해 주는 곳 등도 다양하고 데이터 분석이 매우 쉽고 즐겁네요.

    또 뭔가 신경이 쓰이는 것이 있으면 투고합니다. 그럼 또.

    좋은 웹페이지 즐겨찾기