
本記事では、バフェット・コードのAPIを使い「数百数千の財務データを取得し、集めたデータを保存する」という流れをサンプルコードとともに解説をします!
(記事にでてくるコードは配布しております。まとめにあるリンクからダウンロードください。)
本記事は、全8回に渡って掲載される「Pythonによる財務分析‐バフェットコードを用いて完全レクチャー!」シリーズの第3回です!
今回は、前回書いたコードをもとに、大きく分けて二つのことを行います。
1つ目は、「pandasライブラリのto_csvを用いて、取得したデータをcsv形式で保存する」といった操作を行います。
この操作を行うことで、今後「データの加工」や「データの分析」の工程に入るときにわざわざ「データの取得」から始めること無く保存したデータから始められるようになります。
これにより、作業工程を約”1/2″まで圧縮できます!
2つ目は、「with構文やfor文を用いて、数百数千の財務データを取得する」といった操作を行います。
この操作を行うことで、自動でミスなく数多くの財務データを取得する事ができ、手作業のストレスから解放されるようになります!
1,2の操作が終わりましたら、その後「データの加工」や「データの分析」を行えるようになります!
今回がデータの取得の大詰めです。
それでは一緒に学んでいきましょう!
「バフェットコードAPIを利用しデータの取得」の流れを学べる第2回はコチラ!
目次
「Pythonによる財務分析②」で書いたコードをもとに、取得したデータを保存しよう!

ここでは、pandasライブラリの”to_csv”を用いて、データを保存する流れをレクチャーします。
これを行うことにより、今後「データの加工」や「データの分析」の工程に入るときにわざわざ「データの取得」から始めること無く保存したデータから始められるようになります。
では早速、前回作成した、最大3社まで取得できるコードを使い、財務データを保存する流れを学んでいきましょう!
保存先のフォルダを作成
まずは、保存先のフォルダを作成します。これを行うことで、前回の取得した3種類のデータを整頓し保存する事ができます。
下の画像のように、python財務分析のフォルダに
- df_q
- df_day
- df_c
の3つのフォルダを作成します!


その後、ジュピター・ノートブックに移り、「第3回」のファイルを作成します。

第2回で作成したコードを、第3回にコピー&ペーストする
第2回の終盤で作成した、「fetch関数」「make_df関数」「確認用」の3つのセルを第3回にコピー&ペーストします。
3つのセルは下の画像を参考にしましょう。
第2回はコチラ!

四半期の財務数値を古い順にソートできるように修正する
ここで一旦、コードを実行して出力結果を確認しましょう!
その際、APIキーを自分のものに設定することに注意してください。

これをみると、日付が新しい順にデータが格納されています。
このことは、データベースからAPIを利用しデータを取得する仕様上、バフェットコードに限らず起こります。
この場合、古い順からデータを格納している日別の株価指標と、時系列が逆になってしまっているため、4半期の財務数値を取得の途中で並び替えるようにします。

今回は上記のようなコードを、df_q_listの下に挿入し、古い順に並び替えて出力させます。

ここに挿入させると、古い順に並び替えられたことがわかります。

pandasライブラリのto_csvを用いてデータを保存する
保存の準備が出来ましたので、pandasライブラリのto_csvを用いてデータの保存を行います。
こちらを行うことで、今後行う「データの加工」や「データの分析」の際に、わざわざ「データの取得」から始めること無く保存したデータから始められるようになります。これにより、作業工程を約”1/2″まで圧縮できます!

実際にデータの保存の流れをみていきましょう!

今回は、”1301”,”1332”,”1333”を取得してデータを保存します。
fetch関数から上のto_csvまで実行させると、データがフォルダに格納されたことがわかります!

バフェットコードのAPIで、数百数千の財務データを取得しよう!
数百数千の財務データを保存する準備が整ったことで、待ちに待ったwith構文やfor文を使って取得に入っていきます!
この章の作業を完了すれば、財務データの取得の自動化を行うことができるようになります!
LINE@からticker_listをダウンロード後、保存し「python財務分析」のフォルダに入れる
下記LINE@から、ticker_listをダウンロードします。
メッセージにて、「財務分析」とお送りいただければダウンロードができます。

このフォルダは、メモ帳ファイルが沢山詰まっています。
中身は、バフェットコードに登録している企業の銘柄コードをAPI取得用にまとめたものとなっています。
こちらを使うことにより、銘柄コードの入力の自動化を行うことができます。

その後、python財務分析のフォルダにticker_listを入れます。

最後に、tickcer_listの中のメモ帳ファイルがちゃんと存在するか確認します。
今回はバフェットコードに登録されている全企業の銘柄コードか記された、ticker.txtを読み込んでみます。
下記のようなコードを書き、3社ずつ文字列で出力されていることが確認できたら成功です。

バフェットコードのAPIのリクエスト制限に注意する
大量のデータを取得する前に、注意事項としてリクエスト制限について説明します。
バフェットコード様のAPIは1日当たり500回です。
リクエスト制限を踏まえ、今回の3種類のデータ取得を行うと、一日当たり取得できる企業は約500社になります。
全企業数は約3600社ですので一週間はかかる見込みです。
こちらを頭の隅におき、数百数千の財務データの取得や保存をおこないましょう!
数百数千の財務データを取得し保存する
with構文やfor文を用いて財務データの取得と保存を行います。
2-2で話したように、日にちをまたいでデータを取得する必要があります。
そのため、ticker_listの中にあるticker_countを利用し、データの取得のセーブポイントを作成させ続きから取得できるようにさせます。

今回はtry文を用いて、リクエスト制限がかかったら、何行から何行まで読み込めたか出力させるようにしました。
行数は下の画像のようにticker.txtを開くと確認できます。(左に見える1~6の数字が行です。)

一日あたりの取得が終わったら、3つのdfフォルダのどれかを確認してみると、大量の財務データが保存されていることがわかります。

一週間かけ全ての取得が終わったら、次回以降に行う「データの加工」や「データの保存」に移ることができます!

バフェットコードのAPIで、業種別で財務データを取得し保存しよう!
2章では全企業の財務データを保存する流れをレクチャーしましたが、3章では特定の業種内のみで加工や分析を行う方法も紹介します。
業種別での取得のメリットは、取得する企業がすくないため日にちをかけずにデータを集めることが出来ます。
特に、最後に行う重回帰分析では、業種別に絞って予測をすると精度が上がるため、こちらの取得方法も覚えておきましょう!
業種別の企業数(銘柄コード数)を確認する
業種別に取得を行う前に企業数を確認します。
企業数を確認することで、
- 『1日でデータを取得し終わるのか』
- 『分析するのに十分な数があるのか』
が分かります。
industryという変数に、業種をまとめたリストを作成します。

Industryをもとに、ticker_listにある業種ごとの銘柄コードリストを読み込み、企業数を出力します。

パラメータ数(指標数)により取得する業種を決める
業種ごとの企業数が確認できたところで、パラメータ数に業種を決めていきましょう!
パラメータとは、今回のような重回帰分析を行う場合、説明変数を指します。
例えば、とある商品の売上を予測するとします。 その中で、売上の要因として“広告”や“商品の品質”といったものが考えられる場合、先ほど述べた”広告”や”商品の品質”が説明変数としてつかわれます。
本記事では説明変数を財務指標にします。
つまり、『パラメータ数 = 重回帰分析につかう指標数』、ということになります。
また、パラメータ数の10倍以上のデータ数が機械学習をする際の目安となっています。
今回の場合、パラメータ数を12個用意する予定のため、120以上のデータ数をもつ企業以外を取得しないようにします。


上記のようなコードを書くと、120以上の業種のみを抽出することが出来ます。
業種別で財務データを取得し保存する
取得したい業種を決めたら、下記のようなコードを書き、入力した業種のみを取得し保存させるようにします。

実行させると、今回は「全157行中120行」と途中でリクエスト制限が来てしまいました。
その場合は翌日に再取得してみましょう!
尚、再取得したときに、既に取得した銘柄コードのデータがある場合は、データの上書きが行われるだけですので、3つのdfフォルダを再作成する必要はないです!
まとめ
第3回では、Pythonで本格的な財務分析を行うための、
- pandasライブラリのto_csvを用いて、取得したデータをcsv形式で保存する
- with構文やfor文を用いて、数百数千の財務データを取得する
といったことをレクチャーしてきました!
次回の第4回では、「データの加工」に入り、『12の財務指標に加工する流れ』をマスターしていきます!
記事にでてくるコードはLINE@にて配布をしております!
ラインのメッセージ欄に「財務分析」とお送りいただければ、ダウンロードリンクを送付いたします!
最終的に重回帰分析といった機械学習的手法もマスターできる!