使用 Python 分析財務報表
Rohan Chatterjee
Risk modeler

pivot_table 計算各公司比率平均:avg_company_ratio = plot_dat.pivot_table(index=["comp_type",
"company"],
values=["Gross Margin", "Operating Margin",
"Debt-to-equity", "Equity Multiplier"],
aggfunc="mean").reset_index()
print(avg_company_ratio.head())
pivot_table 計算各產業比率平均:avg_industry_ratio = plot_dat.pivot_table(index="comp_type",
values=["Gross Margin", "Operating Margin",
"Debt-to-equity",
"Equity Multiplier"],
aggfunc="mean").reset_index()
print(avg_industry_ratio.head())
seaborn 繪圖需要「長格式」資料。用 pd.melt 將 avg_industry_ratio 與 avg_company_ratio 轉為長格式:molten_plot_company = pd.melt(avg_company_ratio, id_vars=["comp_type",
"company"])
molten_plot_industry = pd.melt(avg_industry_ratio,
id_vars=["comp_type"])
print(molten_plot_company.head())
print(molten_plot_industry.head())
pd.concat 串接 molten_plot_company 與 molten_plot_industry。molten_plot_industry 沒有 company 欄,因為它代表整體產業的比率平均。pd.concat 要求兩個 DataFrame 欄位相同,所以先在 molten_plot_industry 新增 company 欄。molten_plot_industry["company"] = "Industry Average"
molten_plot = pd.concat([molten_plot_company, molten_plot_industry])
sns.barplot(data=molten_plot, y="variable", x="value", hue="company", ci=None)
plt.xlabel(""), plt.ylabel("")
plt.show()

使用 Python 分析財務報表