OECDでは、金融データに関わらず様々なデータを公開しています。経済、金融、エネルギー、政府、環境、教育など様々なジャンルがあるので、幅広いデータの取得ができます。ただし、多くのデータは四半期あるいは年次での更新になるので、長期的な見通しを考えるための参考材料とはなりますが、日々の投資判断に使うのは少し不向きかもしれません。
pandas_datareaderによる取得
取得対象のデータベース名がわかっていれば、以下のように取得できます。
人口データを取得する例になります。
import pandas as pd
import datetime as dt
import pandas_datareader.data as web
start_time = dt.datetime(2000, 1, 1)
end_time = dt.datetime(2022, 2, 1)
df = web.DataReader('HISTPOP', 'oecd', start_time, end_time)
APIによる取得
米国と日本のGDPなどを取得する例です。
import requests
def get_data(dsname, dimensions, params=None):
if params is None:
params = {}
args = ['+'.join(d) for d in dimensions]
arg_str = '.'.join(args)
base_url = 'http://stats.oecd.org/sdmx-json/data'
url = base_url + '/' + dsname + '/' + arg_str + '/all'
print(url)
return requests.get(url, params=params)
response = get_data('QNA',(('USA', 'JPN'),('GDP', 'B1_GE'),('CUR', 'VOBARSA'), ('Q')),{'startTime':'2023-Q1', 'endTime':'2024-Q1'})
json_data = response.json()
('USA', 'JPN'),('GDP', 'B1_GE'),('CUR', 'VOBARSA'), ('Q')
はフィルタリングの方法になります。フィルタリングしない場合はall
とします。
http://stats.oecd.org/sdmx-json/data/データソース/フィルタリング/all
の形式のURLを作成する必要があります。
‘USA’, ‘JPN’は場所
‘GDP’, ‘B1_GE’はデータ項目、
‘CUR’, ‘VOBARSA’は測定基準
‘Q’は頻度を示しています。
データ項目の調べ方
どうやってデータベース名などを取得すればいいのか今一つわかっていません。
ひとまず調べたところまで記載しておきます。
詳細は公式ドキュメントを確認してください。
公式ドキュメント
最近は新しいデータ検索プラットフォームになったようで、下記のサイトからデータベースの一覧を検索できます。
OECD Data Explore
GDPを検索してみます。
例えば一人当たりGDPの詳細ページを見てみます。
開発者用のAPIについてのリンクの記載があります。
こちらのURLにアクセスするとXML形式のファイルがダウンロードできるようなので、これをうまく整形してもよいのかもしれません。