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 등 데이터를 다루는 강력한 라이브러리가 다수 있어 또 그것에 맞는 데이터를 제공해 주는 곳 등도 다양하고 데이터 분석이 매우 쉽고 즐겁네요.

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

    좋은 웹페이지 즐겨찾기