バフェット・コードのブログ

企業分析に役立つ記事を配信中

プレミアムプランの目玉!Web API機能を使ってみよう

この記事はバフェットコードAPIバージョン2(v2) 向けの記事です。
バフェットコードAPIバージョン3(v3)では作動しません。

v3 への移行については下記を御覧ください。 blog.buffett-code.com

「財務データ 取得する方法」

「財務数値 ダウンロード」

「財務諸表 無料」

そんな検索をしたことはありませんか?

有報や短信から数値をコピペするのは大変!

CSVなら提供しているサイトもあるけど、結局「ダウンロード」ボタンを自分の手で押さないといけないんだよなぁ。

自動化したいからWeb APIってないものか...

そんなお悩みをお持ちの方は多いと思います。

みなさん、朗報ですよ!

バフェット・コードではWeb APIのご用意がありますよ!

Web APIを使うことで、四半期ごとの業績データ(B/S、P/L、C/S)を取得することができ、ExcelのVBAやJupyter Notebook、あるいはクラウド上のGoogle Colaboratoryなどを使い、取得したデータを簡単に加工・分析することができます。

でもWeb APIって使うの難しいんじゃないの?

どうやって使うの?

本稿ではそのWeb APIを使ってどんなことができるのか見ていきたいと思います。

今有料機能を検討しているんだけど悩んでいる、そんな方はぜひ読んでほしい。

今回は面倒な環境構築を省けるGoogle Colaboratory使った活用事例を紹介しますね。

なお、ダウンロードしてすぐに使えるよう編集したノートブックを用意しました。

まずはこちらからノートブックを開いて、ご自身のGoogleDriveにコピーしてみて下さい。

colab.research.google.com

以下、四半期ごとの業績データ取得までを順を追って解説します。

ノートブックをChromeブラウザ上で開こう

コピーしたノートブックをブラウザで開くとこのようになっています。

設定するのは4箇所だけ

業績データの取得に必要なのは、スクリーンショットの赤字で番号を振っている部分を変えるだけです。

  1. バフェット・コードのマイページから発行したWeb APIキー
  2. 調べたい企業のコード
  3. 取得したい始まりの四半期
  4. 取得したい終わりの四半期 です。

1のWeb APIは[マイページ]-[APIキー]から取得できます。

2のコードは今回は1333マルハニチロにしてみます。

3と4は、例えば2018年第三四半期から2019年第二四半期までを指定したい場合、

START = '2018Q3'

END = '2019Q2'

と指定します。

実行してみる

この4箇所の設定が終わったら、ノートブックのセルを上から順にRunボタンで実行します。

全てのセルを実行すると最後にこのような結果が出力されるはずです。

見やすくする

見栄えをよくするために少し処理をします。下記のコードをノートブックのセルに貼り付けて実行すると....

# YearとQuarterを結合する
df['fiscal_year'] = df['fiscal_year'].astype(int)
df['fiscal_quarter'] = df['fiscal_quarter'].astype(int)
df['YearQuarter']=df['fiscal_year'].map(str)+ '-' + df['fiscal_quarter'].map(str) + 'Q'
df.sort_values(by='YearQuarter', inplace=True)
# YearQuarterをIndexにセットする
df.set_index('YearQuarter', inplace=True)
df = df.T

このように行と列が入れ替わった状態になるはずです。

四半期ごとの営業利益率を求めてみる

ここでサクッと営業利益率を計算してみましょう。

営業利益率は

営業利益 / 売上高 * 100なので

df.loc['営業利益率']=df.loc['operating_income'] / df.loc['net_sales'] * 100
df.loc[['net_sales', 'operating_income', '営業利益率']]

をセルに貼り付けて実行します。

グラフにしてみる

さらに見やすくするため四半期ごとの営業利益率をグラフにしてみましょう。

import matplotlib.pyplot as plt
x = df.columns
y = df.loc['営業利益率']
plt.plot(x, y)
plt.plot()
plt.show()

いままでと同様にセルにコピペして実行すると

営業利益率の推移がグラフになりました!

今回はここまでです。

ブログでは今後もWeb APIを含めた活用事例を紹介していきます!