google colab(python + yahooquery)で、日経225の純利益をランキング化してみた。
ローカル環境だと、バージョンの問題なのか上手く動作しなかったので、google colabで実行してみた。
pip install yahooqueryしなくても動作した。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#!pip install yahooquery # ライブラリのインポート import numpy as np import pandas as pd from yahooquery import Ticker # データフレームを初期化 df = pd.DataFrame([]) # 銘柄リスト stock_codes = [ # 銘柄コード, 銘柄名, 業種 ['1332', '日本水産', '水産'], ['1605', 'INPEX', '鉱業'], ['1721', 'コムシスホールディングス', '建設'], # ... 長いので省略 # https://site1.sbisec.co.jp/ETGate/?OutSide=on&_ControlID=WPLETmgR001Control&_PageID=WPLETmgR001Mdtl20&_DataStoreID=DSWPLETmgR001Control&_ActionID=DefaultAID&getFlg=on&burl=search_market&cat1=market&cat2=none&dir=info&file=market_meigara_225.html ] for code in stock_codes: # 銘柄コードで指定 ticker = Ticker(code[0] + '.T') # 決算書データを取得 icst = ticker.income_statement() # 最新の純利益、その日付だけ抽出 df_stock = icst[["NetIncome","asOfDate"]].tail(1) # 先頭に銘柄名を追加 df_stock.insert(0, 'stock_name', code[1]) # ひたすら連結 df = pd.concat([df, df_stock]) # 純利益が大きい順で、銘柄コードを標示 df.sort_values('NetIncome', ascending=False) |
symbol,stock_name,NetIncome,asOfDate
1605.T,INPEX,508387000000.0,2023-06-30 00:00:00
1332.T,日本水産,22981000000.0,2023-06-30 00:00:00
1721.T,コムシスホールディングス,19880000000.0,2023-06-30 00:00:00
これだけだと有り難みが無いので、過去の決算書データから、純利益の成長率とかでランキングしないとな…。