![見出し画像](https://assets.st-note.com/production/uploads/images/108234646/rectangle_large_type_2_80b9fd32680fad3fe56f95b4c8d93e5a.png?width=1200)
pythonで「PBR算出ルーチン化」
1.はじめに
pythonで「PER算出ルーチン化」に引き続き、今回はPBR算出をpythonでルーチン化したいと思います。
前回、PERを算出した表に追記する形でPBRを算出します。
前回記事は下記となります。お読み頂けたら幸いです。
2.PBRとは
PBR 株価純資産倍率
計算式 株価 ÷ 一株当たり純資産(BPS) 単位:倍
企業の解散価値が株主資本に対して、何倍に株価が評価されているかを示します。一倍割れは割安であるとされます。
3.PER算出データ読込
前回算出を行ったPER算出データを読込みます。
import pandas as pd
# 1.データの読み込み
df = pd.read_excel("df_PER.xlsx")
![](https://assets.st-note.com/img/1686567657322-OfSa8Dni4n.png?width=1200)
4.B/Sデータの読込、内容の確認
前回と同じく、上場企業の最新決算・財務データをダウンロードできるIR BANKから、B/S:貸借対照表をCSVデータにてダウンロードし読込みます。
# B/Sデータの読み込み
BPS = pd.read_csv("fy-balance-sheet.csv",skiprows=1)
![](https://assets.st-note.com/img/1686568602028-HBiKpOkhB7.png?width=1200)
読込んだB/Sデータに、ズバリ一株当たり純資産:BPSが記載されています。
5.PBR算出
読込んだPER算出にB/Sデータを結合させるための、下準備を行います。
B/Sデータのコードを、結合させるキーワード“銘柄コード”+”.jp”とし揃えます。
BPS["コード"] = BPS["コード"].astype(str) + ".jp"
![](https://assets.st-note.com/img/1686569473721-pVkIrKTiJj.png?width=1200)
“銘柄コード”+”.jp”とコードの値が置換されました。
2つのデータを結合します。
# dfとBPS_filteredを結合してPBRを作成
PBR = pd.merge(df, BPS)
![](https://assets.st-note.com/img/1686569798749-M73ofCYux1.png?width=1200)
続いてPBR算出を行います。
PBR["BPS"] = PBR["BPS"].astype(float)
# PBR算出
PBR["PBR"] = PBR["平均終値株価"] / PBR["BPS"]
PBR = PBR.sort_values(by=["PER"], ascending=True)
「PBR」データフレームの「BPS」という列のデータ型をfloat型に変換し、平均終値株価をBPSで割ってPBRを計算し、PBR.sort_valuesでPER 株価収益率の値が小さい順に並び替えを行いました。
![](https://assets.st-note.com/img/1686739546143-re91xwFEy4.png?width=1200)
ちなみに、割安となる1倍割れの銘柄は15銘柄とそんなに多くはありませんでした。
6.おわりに
前回に続くPER・PBR算出で、銘柄コード 7744 ノーリツ鋼機の値が際立っています。
今後の修行は、この企業の個別分析「ROIC」ルーチン化を企んでみたり…書籍の写経でテクニカル分析にも取り組んでいるので、そちらとファンダメンタル分析を組み合わせた、実際の売買などにも幅を広げていこうと思います。
この記事が気に入ったらサポートをしてみませんか?