【Python金融データ】OECDの使い方

投資・ファイナンス

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の詳細ページを見てみます。
一人当たりGDP

開発者用のAPIについてのリンクの記載があります。
API
こちらのURLにアクセスするとXML形式のファイルがダウンロードできるようなので、これをうまく整形してもよいのかもしれません。
API詳細

タイトルとURLをコピーしました