グーグルコラボで始める株価分析シリーズその2です。
第2回目となる今回は、Yahoo Financeから取得したデータを保存してエクセルで開ける形式でエクスポートすることと、保存したデータを読み込んで利用する手順を解説します。
都度データを取得すると時間もかかってしまうので、あらかじめバックテスト用にデータを保存しておき、バックテストの際はそのデータを読み込むことで効率よく分析が行えます。
シリーズものとなっておりますので、この記事に直接アクセスされた方は前回の記事もぜひご参照ください。
ステップ1:事前準備
まず、取得したデータを保存することから始めましょう。
事前にグーグルドライブとマウントし、保存先のパスを指定しておきます。(前回の記事要参照)
また、ライブラリもインポートしておきます。
#↓ドライブをマウントした後に実施すること
%cd "/content/drive/My Drive/Colab Notebooks/swing_trade"
import pandas as pd
import datetime as dt
from pandas_datareader import data as pdr #日経平均やナスダック、日本の個別銘柄のデータを取得
import yfinance as yfin
続いて、適当な銘柄のデータを取得しましょう。
start = dt.date(2013,1,1)
end = dt.date(2023,3,31)
yfin.pdr_override()
df = pdr.get_data_yahoo('8306.T', start, end)
取得したデータがdfという変数に格納されました。
ステップ2:csv,exel形式で保存する
まずはcsv形式で保存してみましょう。コードは非常に簡単で、以下のコードで保存することができます。
df.to_csv('test.csv')
グーグルドライブを開いて、対象のファイルが作成されているか確認してみてください。
今回ですと、ステップ0で指定した「/content/drive/My Drive/Colab Notebooks/swing_trade」直下に作成されています。
反映までに少しラグがあるので、作成されない場合はドライブを再読み込みするなどしてください。
続いてよく利用するエクセル形式でも保存してみましょう。
グーグルコラボの画面上でもデータ集計はもちろん行うことができますが、慣れ親しんだエクセルでデータを見たいという場面も多いですよね。
df.to_excel('test1.xlsx')
ステップ3:保存したファイルを読み込む
保存したファイルを読み込み、取得したデータと同じデータが出力されるか確認します。
取得時のデータはこのようになっています。
df.head()
Open High Low Close Adj Close Volume
Date
2013-01-04 477.0 485.0 474.0 484.0 335.291992 119113900
2013-01-07 487.0 488.0 475.0 476.0 329.749939 86678900
2013-01-08 469.0 471.0 457.0 462.0 320.051483 117835800
2013-01-09 451.0 472.0 449.0 469.0 324.900818 122409400
2013-01-10 474.0 484.0 472.0 474.0 328.364471 158715200
保存したデータを読み込むのも非常に簡単で、以下のコードで読み込めます。
df_csv = pd.read_csv('test.csv')
読み込んだデータをheadで出力して確認しましょう。
df_csv.head()
Date Open High Low Close Adj Close Volume
0 2013-01-04 477.0 485.0 474.0 484.0 335.291992 119113900
1 2013-01-07 487.0 488.0 475.0 476.0 329.749939 86678900
2 2013-01-08 469.0 471.0 457.0 462.0 320.051483 117835800
3 2013-01-09 451.0 472.0 449.0 469.0 324.900818 122409400
4 2013-01-10 474.0 484.0 472.0 474.0 328.364471 158715200
同様の結果が出力されたので、保存したデータの読み込みが正しく行えていますね。
xlsx形式で保存したデータの読み込みも確認します。以下のコードで読み込みます。
df_excel = pd.read_excel('test1.xlsx')
こちらも出力して結果を確認します。
df_excel.head()
Date Open High Low Close Adj Close Volume
0 2013-01-04 477.0 485.0 474.0 484.0 335.291992 119113900
1 2013-01-07 487.0 488.0 475.0 476.0 329.749939 86678900
2 2013-01-08 469.0 471.0 457.0 462.0 320.051483 117835800
3 2013-01-09 451.0 472.0 449.0 469.0 324.900818 122409400
4 2013-01-10 474.0 484.0 472.0 474.0 328.364471 158715200
同様の結果が出力されました。
次回の記事はこちらからどうぞ。
もっと勉強したい方向けのおすすめ参考書
当記事ではコピペをすれば誰でも同じ結果が出せる、ということを主眼にしております。
そのためPythonや株に関する情報は必要最小限となっておりますので、適宜わからない点は他サイト様で補っていただけると幸いです。
Pythonそのものを勉強したいという場合は、以下の書籍が現状最もとっつきやすく、分かりやすく書かれているのではないかと思います。(私も持っています。)興味があれば是非手にとってみてください。
また、同じシリーズでPythonを使った機械学習入門の書籍も発売されています。
結構なボリュームがありますが、初心者にも分かりやすく丁寧に書かれていますので、こちらも入門書としておすすめです。
機械学習に特化しているので、今後株価予測などを行いたい方にぴったりだと思います。