pandas で財務比率を計算する

Pythonで学ぶ財務諸表分析

Rohan Chatterjee

Risk Modeler

貸借対照表データの構造

  • 貸借対照表データは pandas の DataFrame balance_sheet に読み込み済み。

 

print(balance_sheet.head()) balance_sheet 先頭行のスクリーンショット。

Pythonで学ぶ財務諸表分析

流動比率を計算する

balance_sheet["current_ratio"] = balance_sheet["Total Current Assets"] / 
                                 balance_sheet["Total Current Liabilities"]
print(balance_sheet.head())

current_ratio 列を追加した balance_sheet の表示。

Pythonで学ぶ財務諸表分析

.groupby() でグループ別集計

  • 業界別の平均流動比率を得るには:
    balance_sheet.groupby("comp_type")["current_ratio"].mean()
    
    各業界の平均流動比率。
Pythonで学ぶ財務諸表分析

.groupby() でグループ別集計

balance_sheet.groupby(["Year","comp_type"])["current_ratio"].mean()

年×業界ごとの平均流動比率。

Pythonで学ぶ財務諸表分析

groupby().transform() の活用

  • .groupby() の後に .transform() を使うと、各行の属するグループの結果を列として付与できます。
    balance_sheet["industry_curr_ratio"] = 
              balance_sheet.groupby([
              "Year","comp_type"])["current_ratio"].transform("mean")
    print(balance_sheet.head())
    

年×業界の平均流動比率を balance_sheet に追加した例。

Pythonで学ぶ財務諸表分析

.groupby().transform() の活用

balance_sheet["relative_diff"] = 
                            (balance_sheet["current_ratio"] / 
                             balance_sheet["industry_curr_ratio"]) - 1

企業の流動比率と業界の流動比率の相対差を示す DataFrame。

Pythonで学ぶ財務諸表分析

.isin() の活用

  • .isin() は分析用のデータ抽出に使います。
  • 例: 2019・2020 年の fmcgtech 企業のみを抽出:
fmcg_2019 = balance_sheet.loc[
            (balance_sheet["Year"].isin([2019,2020])) &
            (balance_sheet["comp_type"].isin(["tech","fmcg"]))
                            ]
Pythonで学ぶ財務諸表分析

練習してみましょう!

Pythonで学ぶ財務諸表分析

Preparing Video For Download...