用于公司内分析的比率可视化

用 Python 分析财务报表

Rohan Chatterjee

Risk modeler

可视化财务比率

  • 条形图 有助于:
    • 可视化公司平均财务比率,
    • 评估相对行业平均的表现

这是一个条形图,我们将 Google 的财务比率与科技行业的平均比率进行比较。

用 Python 分析财务报表

绘图前的数据准备

  • 使用 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())

该图显示 DataFrame avg_company_ratio 的前五行。关注"Gross Margin"和"Operating Margin"列,展示各公司的这些比率均值。

用 Python 分析财务报表

绘图前的数据准备

  • 使用 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())

该图显示 DataFrame avg_industry_ratio 的前五行。关注"Gross Margin"和"Operating Margin"列,展示各行业的这些比率均值。

用 Python 分析财务报表

绘图前的数据准备

  • seaborn 中绘图需要"长"格式数据。用 pd.meltavg_industry_ratioavg_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"])
    
用 Python 分析财务报表
  • print(molten_plot_company.head())

此图显示 DataFrame molten_plot_industry 的前 5 行。关键在于 DataFrame 现为 average_industry_ratio 的长格式。variable 列给出比率名称,value 列为其数值。

  • print(molten_plot_industry.head())

此图显示 DataFrame molten_plot_industry 的前 5 行。关键在于 DataFrame 现为 average_company_ratio 的长格式。variable 列给出比率名称,value 列为其数值。

用 Python 分析财务报表

绘图前的数据准备

  • Seaborn 需要将要绘制的数据放在同一个 DataFrame 中
  • 使用 pd.concat 连接 molten_plot_companymolten_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])
用 Python 分析财务报表

绘制条形图

sns.barplot(data=molten_plot, y="variable", x="value", hue="company", ci=None)
plt.xlabel(""), plt.ylabel("")
plt.show()

与本视频第 2 张幻灯片相同的图片。条形图比较了 Google 的财务比率与科技行业平均水平。

用 Python 分析财务报表

让我们来练习!

用 Python 分析财务报表

Preparing Video For Download...