【Python金融データ】Federal Reserve Economic Data (FRED)の使い方(第2回)

投資・ファイナンス

前回はFREDというデータベースの照会と、基本的な使い方を見ていきました。たくさんのエンドポイントがFREDにはあるので、今回は前回紹介できなかったものをリスト化していこうと思います。
冗長になるので、必要なときに参照する程度の参考情報をしてください。
基本の使い方は前回紹介しているので、前回の記事を読んでいない場合は併せて確認してください。

詳細な使い方は、公式ドキュメントも併せて確認してください。

get_data 関数の定義

データ取得のテンプレート関数を作成しておきます。

import pandas as pd
import requests

def get_data(url, params, data_key=None):
    response = requests.get(url, params=params)
    response.raise_for_status()  # HTTPエラーチェック
    data = response.json()
    return pd.DataFrame(data[data_key]) if data_key else pd.DataFrame(data)

Series

基本的に一番使うのはこのカテゴリーだと思います。
この中でも特に、前回紹介したobservationsを使うケースがほとんどだと思います。

fred/series

指定された経済データの時系列を取得します。

url = 'https://api.stlouisfed.org/fred/series'
params = {
    'series_id': 'GDP',
    'api_key': api_key,
    'file_type': 'json'
}
series_data = get_data(url, params)
print(series_data)

fred/series/categories

指定された経済データシリーズのカテゴリを取得します。

url = 'https://api.stlouisfed.org/fred/series/categories'
params = {
    'series_id': 'GDP',
    'api_key': api_key,
    'file_type': 'json'
}
series_categories_data = get_data(url, params, 'categories')
print(series_categories_data)

fred/series/observations

指定された経済データシリーズの値を取得します。

url = 'https://api.stlouisfed.org/fred/series/observations'
params = {
    'series_id': 'GDP',
    'api_key': api_key,
    'file_type': 'json'
}
series_observations_data = get_data(url, params, 'observations')
print(series_observations_data)

fred/series/release

指定された経済データシリーズのリリース情報を取得します。

url = 'https://api.stlouisfed.org/fred/series/release'
params = {
    'series_id': 'GDP',
    'api_key': api_key,
    'file_type': 'json'
}
series_release_data = get_data(url, params)
print(series_release_data)

fred/series/search

指定されたキーワードに一致する経済データシリーズを検索します。

url = 'https://api.stlouisfed.org/fred/series/search'
params = {
    'search_text': 'gdp',

    'api_key': api_key,
        'file_type': 'json'
    }
    search_results = get_data(url, params, 'seriess')
    print(search_results)

fred/series/search/tags

指定されたキーワードに一致する経済データシリーズのタグを取得します。

url = 'https://api.stlouisfed.org/fred/series/search/tags'
params = {
    'series_search_text': 'gdp',
    'api_key': api_key,
    'file_type': 'json'
}
search_tags_data = get_data(url, params, 'tags')
print(search_tags_data)

fred/series/search/related_tags

指定されたキーワードに関連するタグを持つ経済データシリーズの関連タグを取得します。

url = 'https://api.stlouisfed.org/fred/series/search/related_tags'
params = {
    'series_search_text': 'gdp',
    'tag_names': 'usa',
    'api_key': api_key,
    'file_type': 'json'
}
related_tags_data = get_data(url, params, 'tags')
print(related_tags_data)

fred/series/tags

指定された経済データシリーズのタグを取得します。

url = 'https://api.stlouisfed.org/fred/series/tags'
params = {
    'series_id': 'GDP',
    'api_key': api_key,
    'file_type': 'json'
}
series_tags_data = get_data(url, params, 'tags')
print(series_tags_data)

fred/series/updates

経済データシリーズを、FREDサーバーで観測値が更新された時系列順に取得します。

url = 'https://api.stlouisfed.org/fred/series/updates'
params = {
    'api_key': api_key,
    'file_type': 'json'
}
series_updates_data = get_data(url, params, 'seriess')
print(series_updates_data)

fred/series/vintagedates

経済データシリーズのデータ値が修正されたり、新しいデータ値がリリースされた日付を取得します。

url = 'https://api.stlouisfed.org/fred/series/vintagedates'
params = {
    'series_id': 'GDP',
    'api_key': api_key,
    'file_type': 'json'
}
vintage_dates_data = get_data(url, params, 'vintage_dates')
print(vintage_dates_data)

Categories

fred/category

指定されたカテゴリの情報を取得します。

url = 'https://api.stlouisfed.org/fred/category'
params = {
    'category_id': 125,
    'api_key': api_key,
    'file_type': 'json'
}
category_data = get_data(url, params)
print(category_data)

fred/category/children

指定された親カテゴリの子カテゴリを取得します。

url = 'https://api.stlouisfed.org/fred/category/children'
params = {
    'category_id': 125,
    'api_key': api_key,
    'file_type': 'json'
}
children_data = get_data(url, params, 'categories')
print(children_data)

fred/category/related

指定されたカテゴリの関連カテゴリを取得します。

url = 'https://api.stlouisfed.org/fred/category/related'
params = {
    'category_id': 125,
    'api_key': api_key,
    'file_type': 'json'
}
related_categories_data = get_data(url, params, 'categories')
print(related_categories_data)

fred/category/series

指定されたカテゴリに含まれるシリーズを取得します。

url = 'https://api.stlouisfed.org/fred/category/series'
params = {
    'category_id': 125,
    'api_key': api_key,
    'file_type': 'json'
}
category_series_data = get_data(url, params, 'seriess')
print(category_series_data)

fred/category/tags

指定されたカテゴリのタグを取得します。

url = 'https://api.stlouisfed.org/fred/category/tags'
params = {
    'category_id': 125,
    'api_key': api_key,
    'file_type': 'json'
}
category_tags_data = get_data(url, params, 'tags')
print(category_tags_data)

fred/category/related_tags

指定されたカテゴリの関連タグを取得します。

url = 'https://api.stlouisfed.org/fred/category/related_tags'
params = {
    'category_id': 125,
    'tag_names': 'usa',
    'api_key': api_key,
    'file_type': 'json'
}
related_tags_data = get_data(url, params, 'tags')
print(related_tags_data)

Releases

fred/releases

全ての経済データリリース情報を取得します。

url = 'https://api.stlouisfed.org/fred/releases'
params = {
    'api_key': api_key,
    'file_type': 'json'
}
releases_data = get_data(url, params, 'releases')
print(releases_data)

fred/releases/dates

全ての経済データリリースのリリース日を取得します。

url = 'https://api.stlouisfed.org/fred/releases/dates'
params = {
    'api_key': api_key,
    'file_type': 'json'
}
release_dates_data = get_data(url, params, 'release_dates')
print(release_dates_data)

fred/release

指定された経済データリリース情報を取得します。

url = 'https://api.stlouisfed.org/fred/release'
params = {
    'release_id': 53,
    'api_key': api_key,
    'file_type': 'json'
}
release_data = get_data(url, params)
print(release_data)

fred/release/dates

指定された経済データリリースのリリース日を取得します。

url = 'https://api.stlouisfed.org/fred/release/dates'
params = {
    'release_id': 53,
    'api_key': api_key,
    'file_type': 'json'
}
release_specific_dates_data = get_data(url, params, 'release_dates')
print(release_specific_dates_data)

fred/release/series

指定された経済データリリースの時系列データを取得します。

url = 'https://api.stlouisfed.org/fred/release/series'
params = {
    'release_id': 53,
    'api_key': api_key,
    'file_type': 'json'
}
release_series_data = get_data(url, params, 'seriess')
print(release_series_data)

fred/release/sources

指定された経済データリリースの情報ソースを取得します。

url = 'https://api.stlouisfed.org/fred/release/sources'
params = {
    'release_id': 53,
    'api_key': api_key,
    'file_type': 'json'
}
release_sources_data = get_data(url, params, 'sources')
print(release_sources_data)

fred/release/tags

指定された経済データリリースのタグを取得します。

url = 'https://api.stlouisfed.org/fred/release/tags'
params = {
    'release_id': 53,
    'api_key': api_key,
    'file_type': 'json'
}
release_tags_data = get_data(url, params, 'tags')
print(release_tags_data)

fred/release/related_tags

指定された経済データリリースの関連タグを取得します。

url = 'https://api.stlouisfed.org/fred/release/related_tags'
params = {
    'release_id': 53,
    'api_key': api_key,
    'file_type': 'json'
}
release_related_tags_data = get_data(url, params, 'tags')
print(release_related_tags_data)

fred/release/tables

指定された経済データリリースのテーブルを取得します。

url = 'https://api.stlouisfed.org/fred/release/tables'
params = {
    'release_id': 53,
    'api_key': api_key,
    'file_type': 'json'
}
release_tables_data = get_data(url, params, 'tables')
print(release_tables_data)

Sources

fred/sources

全ての経済データソースを取得します。

url = 'https://api.stlouisfed.org/fred/sources'
params = {
    'api_key': api_key,
    'file_type': 'json'
}
sources_data = get_data(url, params, 'sources')
print(sources_data)

fred/source

指定された経済データソースを取得します。

url = 'https://api.stlouisfed.org/fred/source'
params = {
    'source_id': 51,
    'api_key': api_key,
    'file_type': 'json'
}
source_data = get_data(url, params)
print(source_data)

fred/source/releases

指定された経済データソースのリリースを取得します。

url = 'https://api.stlouisfed.org/fred/source/releases'
params = {
    'source_id': 51,
    'api_key': api_key,
    'file_type': 'json'
}
source_releases_data = get_data(url, params, 'releases')
print(source_releases_data)

Tags

fred/tags

全てのタグ、またはキーワードによるタグの検索結果を取得します。

url = 'https://api.stlouisfed.org/fred/tags'
params = {
    'api_key': api_key,
    'file_type': 'json'
}
tags_data = get_data(url, params, 'tags')
print(tags_data)

fred/related_tags

指定されたタグまたは複数のタグの関連タグを取得します。

url = 'https://api.stlouisfed.org/fred/related_tags'
params = {
    'tag_names': 'gdp',
    'api_key': api_key,
    'file_type': 'json'
}
related_tags_data = get_data(url, params, 'tags')
print(related_tags_data)

fred/tags/series

指定されたタグに一致する経済データシリーズを取得します。

url = 'https://api.stlouisfed.org/fred/tags/series'
params = {
    'tag_names': 'gdp',
    'api_key': api_key,
    'file_type': 'json'
}
tag_series_data = get_data(url, params, 'seriess')
print(tag_series_data)

以上が、FRED APIの主要なエンドポイントについての説明と、Pythonを使用したデータの取得方法のサンプルコードになります。

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