quandl에서 소비자 물가 지수(CPI)를 얻고 급락률 계산
소개
주식 투자를 시작한 것이 계기로 세계적인 경제나 금융에 흥미를 가지게 되었습니다.
지난번 는 Quandl 이라는 사이트에서 각국의 인플레이션율을 취득해 표시해 보겠다고 했습니다.
Quandl 에서는 인플레이션 비율 외에도 다양한 경제 지표를 WebAPI에서 얻을 수 있습니다.
이번은 개인적인 연구로 소비자 물가 지수(CPI)의 급락률을 원했기 때문에 Quandl 로 데이터를 취득해 pandas로 그 급락률을 계산해 보았습니다.
실행 환경
코드 및 설명
라이브러리 가져오기
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 등 데이터를 다루는 강력한 라이브러리가 다수 있어 또 그것에 맞는 데이터를 제공해 주는 곳 등도 다양하고 데이터 분석이 매우 쉽고 즐겁네요.
또 뭔가 신경이 쓰이는 것이 있으면 투고합니다. 그럼 또.
Reference
이 문제에 관하여(quandl에서 소비자 물가 지수(CPI)를 얻고 급락률 계산), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/pomta/items/d05d00d1111a941bf439텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)