06 财务比率分析:静态视角

欢迎:进入企业财务分析的核心

各位同学,欢迎来到新的一章。

今天,我们将学习企业财务分析的基石——财务比率分析

这是一种将复杂财报数据转化为深刻商业洞见的技术。

核心问题:如何看透一家公司的’体质’?

财务报表充满了数字,但数字本身不会说话。

  • 贵州茅台一年赚几百亿,这究竟是’多’还是’少’?
  • 它的资产负债率是20%,这究竟是’健康’还是’危险’?

财务比率,就是回答这些问题的标准化工具。

本章目标:成为一名数据驱动的财务侦探

在本章结束时,你将能够:

  1. 理解 四大类核心财务比率的商业内涵。
  2. 运用 Python 和 pandas 自动化计算这些比率。
  3. 解读 比率数据,对公司进行全面的’财务体检’。
  4. 完成 一份专业、全面的公司财务分析报告。

我们的分析框架:四大维度

财务分析的四大维度 一个中心主题'公司财务健康'被四个关键维度包围:盈利能力、运营能力、偿债能力和成长能力。 公司财务 健康状况 盈利能力 (Profitability) 运营能力 (Efficiency) 偿债能力 (Solvency) 成长能力 (Growth)

我们的工具箱:Python生态系统

我们将使用业界标准的工具来完成分析。

  • tushare: 一个强大的财经数据接口,用于获取真实的财务报表数据。
  • pandas: Python数据分析的核心库,用于数据处理、计算和操作。
  • matplotlib: (稍后会用到) 用于数据可视化,将比率转化为直观的图表。

准备工作:设置API和环境

在开始之前,请确保你已经安装了必要的库,并拥有一个tushare的API token。

# 导入相关库
import pandas as pd
import numpy as np
import tushare as ts

# 设置你的 tushare pro api token
# 你需要在 tushare.pro 网站注册以获取自己的 token
pro = ts.pro_api('你的token')

让我们开始第一站:盈利能力分析

盈利能力是企业的生命线,是所有分析的起点。

它回答了最根本的问题:这家公司赚钱的能力有多强?

我们将学习四个关键的盈利能力指标。

第一部分:盈利能力分析

Profitability Analysis

盈利能力指标概览

我们将依次剖析四个层层递进的指标,它们从不同角度揭示了公司的盈利’成色’。

  1. 毛利率: 衡量核心产品的盈利空间。
  2. 营业利润率: 衡量主营业务的综合盈利水平。
  3. 净利润率: 衡量最终的、’落袋为安’的盈利能力。
  4. 净资产收益率(ROE): 衡量为股东创造回报的效率。

指标一:毛利率 (Gross Profit Margin)

毛利率揭示了企业产品或服务的直接盈利能力。

它是衡量企业’卖东西’这门生意的基础利润空间。

毛利率的定义与公式

毛利率代表销售收入中,扣除与产品直接相关的成本(营业成本)后,剩余部分占总收入的百分比。

\[ \large{ \text{毛利率} = \frac{\text{营业收入} - \text{营业成本}}{\text{营业收入}} } \]

核心内涵:公司的定价权成本控制能力

毛利率的商业解读

  • 原因:
    • 强大的品牌溢价 (如: 苹果, 奢侈品)
    • 技术壁垒或专利保护 (如: 医药, 高端软件)
    • 有效的成本控制
  • 优势: 有更大的空间覆盖运营、研发等费用,并获得利润。
  • 原因:
    • 激烈的市场竞争 (如: 超市, 航空公司)
    • 产品同质化严重
    • 成本控制不佳
  • 挑战: 必须依靠高周转率(薄利多销)来盈利。

在Python中计算毛利率

我们可以用pandas轻松地从财务数据DataFrame中计算。

关键代码:

data['毛利率'] = round((data['营业收入'] - data['减:营业成本']) / data['营业收入'], 4)

请注意: 在Tushare获取的财报中,字段名为减:营业成本,这与财报原文保持一致。

指标二:营业利润率 (Operating Profit Margin)

毛利没有考虑日常运营费用。营业利润率更进一步,衡量主营业务的综合盈利水平。

它回答了:公司在支付了所有运营相关成本后,还剩多少利润?

营业利润率的定义与公式

营业利润率是指企业的营业利润占营业收入的百分比。

\[ \large{ \text{营业利润率} = \frac{\text{营业利润}}{\text{营业收入}} } \]

它比毛利率更全面地反映了企业的经营效率和费用控制能力。

营业利润的构成

营业利润是在毛利的基础上,进一步考虑了期间费用。

从毛利到营业利润 一个流程图,展示了从营业收入中减去营业成本得到毛利,再减去各项期间费用得到营业利润的过程。 营业收入 - 营业成本 毛利 - 期间费用等 销售费用 管理费用 研发费用 财务费用 ... 营业利润

在Python中计算营业利润率

计算非常直接,只需用’营业利润’列除以’营业收入’列。

关键代码:

data['营业利润率'] = round((data['营业利润']) / data['营业收入'], 4)

指标三:净利润率 (Net Profit Margin)

净利润率是衡量企业最终盈利能力的’终极指标’。

它告诉我们,在扣除所有成本、费用和所得税后,每一元销售收入最终能为公司带来多少净利润

净利润率的定义与公式

净利润率是指企业实现的净利润与营业收入的对比关系。

\[ \large{ \text{净利润率} = \frac{\text{净利润}}{\text{营业收入}} } \]

它是评估企业整体盈利能力和经营管理水平的最终体现。

在Python中计算净利润率

Tushare接口返回的字段名为 n_income (净利润) 和 revenue (营业收入)。

关键代码:

data['netprofit_margin'] = round(data['n_income'] / data['revenue'], 4)

指标四:净资产收益率 (ROE)

前面的指标都从’收入’角度衡量。ROE则从股东投入资本的角度来衡量公司为股东赚钱的能力。

它回答了一个核心问题:‘股东每投入一块钱,公司能为他们赚回多少钱?’

ROE的定义与公式

ROE衡量的是公司运用股东投入的资本(净资产)所产生的净利润回报。

\[ \large{ \text{ROE} = \frac{\text{归属于母公司所有者的净利润}}{\text{平均归属于母公司所有者的净资产}} } \]

ROE是连接利润表和资产负债表的桥梁,深受投资者青睐。

深度剖析:为何使用’平均’净资产?

为了更准确地反映’期间’的盈利能力,分母通常使用期初和期末净资产的平均值。

\[ \large{ \text{平均净资产} = \frac{\text{期初净资产} + \text{期末净资产}}{2} } \]

这可以消除因年中增发新股或回购等资本变动对指标的扭曲。

在Python中计算ROE

计算ROE时,需要用到当期和上一期的股东权益数据。

关键代码:

# 假设'股东权益(上期余额)'列已准备好
data['ROE'] = round(data['净利润(不含少数股东损益)'] / ((data['股东权益合计(不含少数股东权益)'] + data['股东权益(上期余额)']) / 2), 4)

案例:计算贵州茅台的盈利能力指标

现在,我们将理论付诸实践,计算贵州茅台(600519.SH)2019-2023年的盈利指标。

我们将合并利润表和资产负债表,并计算所有四个指标。

案例代码:毛利率与营业利润率

下面的代码展示了从读取数据到计算毛利率和营业利润率的全过程。

核心计算逻辑展示

# 导入库并连接API
import pandas as pd
import tushare as ts
pro = ts.pro_api('你的token')

# 读取并合并报表 (此处省略读取过程)
# data = pd.merge(...) 

# 计算毛利率
data['毛利率'] = round((data['营业收入']-data['减:营业成本'])/data['营业收入'],4)   
print(data[['报告期','毛利率']])

# 计算营业利润率
data['营业利润率'] = round((data['营业利润'])/data['营业收入'],4) 
print(data[['报告期','营业利润率']])

案例代码:净利润率与ROE

接着,我们计算净利润率和ROE。计算ROE需要获取2018年的股东权益作为2019年的期初值。

核心计算逻辑展示

# 计算净利润率
data['净利润率'] = round(data['净利润(含少数股东损益)']/data['营业收入'],4) 
print(data[['报告期','净利润率']])

# 获取2018年的净资产数据 (注意原文中的错误)
# 正确应为 period='20181231'
df_2018 = pro.balancesheet(ts_code='600519.SH',period='20181231') 
# ... 构造'股东权益(上期余额)'列 (此处省略) ...

# 计算ROE
data['ROE'] = round(data['净利润(不含少数股东损益)']/((data['股东权益合计(不含少数股东权益)']+data['股东权益(上期余额)'])/2),4)
print(data[['报告期','ROE']])

盈利能力分析小结

我们学习了四个衡量盈利能力的关键指标。

指标 核心问题 视角
毛利率 产品的直接利润空间有多大? 产品层面
营业利润率 主营业务的综合赚钱能力如何? 公司运营层面
净利润率 最终能留下多少利润? 整体经营层面
ROE 为股东创造回报的效率有多高? 股东资本层面

第二部分:运营能力分析

Operating Efficiency Analysis

什么是运营能力?

运营能力衡量企业利用其资产创造销售收入的效率

光有高利润率不够,如果资产周转缓慢(钱都压在库存里),整体资本回报率依然会很低。

它回答:公司’转动’资产的速度有多快?

运营能力指标概览

我们将关注三个核心的运营效率指标。

  1. 存货周转率: 衡量销售存货的速度。
  2. 总资产周转率: 衡量利用全部资产创收的能力。
  3. 应收账款周转率: 衡量收回客户欠款的速度。

指标一:存货周转率 (Inventory Turnover)

存货周转率反映了企业存货管理的效率。

周转越快,存货从入库到售出的时间越短,资金占用越少。

存货周转率的定义与公式

该比率衡量企业在一年内存货周转的次数。

\[ \large{ \text{存货周转率} = \frac{\text{营业成本}}{\text{平均存货余额}} } \]

分母同样采用期初与期末的平均值。

存货周转率的行业特性

存货周转率必须在同行业内比较才有意义。

  • 快消品行业 (如超市): 周转率极高,是其商业模式的核心。
  • 重型机械行业: 周转率较低,因为产品制造周期长、单价高。
  • 白酒行业 (尤其是高端白酒): 周转率可能很低,因为’越陈越香’的特性使得存货本身在升值,这是一种特殊的商业模式。

在Python中计算存货周转率

计算需要用到当期和上一期的存货数据。

关键代码:

# 假设'存货(上期余额)'列已准备好
data['存货周转率'] = round(data['减:营业成本'] / ((data['存货'] + data['存货(上期余额)']) / 2), 4)

指标二:总资产周转率 (Total Asset Turnover)

这是一个更宏观的效率指标,衡量企业利用全部资产产生销售收入的能力。

它回答:每一元的资产,能创造多少元的销售额?

总资产周转率的定义与公式

该比率是企业的营业收入与平均总资产之比。

\[ \large{ \text{总资产周转率} = \frac{\text{营业收入}}{\text{平均总资产}} } \]

比率越高,说明公司的资产利用效率越高。

总资产周转率的行业特性

资产周转率也高度依赖于行业模式。

  • 重资产行业 (如钢铁, 电力): 需要大量厂房、设备,总资产周转率通常较低。
  • 轻资产行业 (如咨询, 互联网服务): 无需大量实物资产,总资产周转率通常较高。

在Python中计算总资产周转率

计算需要用到当期和上一期的资产总计数据。

关键代码:

# 假设'资产总计(上期余额)'列已准备好
data['总资产周转率'] = round(data['营业收入'] / ((data['资产总计'] + data['资产总计(上期余额)']) / 2), 4)

指标三:应收账款周转率 (A/R Turnover)

应收账款周转率衡量企业收回账款的速度。

比率过低,可能意味着公司信用政策宽松,或客户回款不力,有坏账风险。

应收账款周转率的定义与公式

该比率是企业的营业收入与平均应收账款余额之比。

\[ \large{ \text{应收账款周转率} = \frac{\text{营业收入}}{\text{平均应收账款}} } \]

对于像贵州茅台这样产品供不应求的公司,往往’先款后货’,应收账款极少,周转率会非常高。

在Python中计算应收账款周转率

计算需要用到当期和上一期的应收账款数据。

关键代码:

# 假设'应收账款(上期余额)'列已准备好
data_wly['应收账款周转率'] = round(data_wly['营业收入'] / ((data_wly['应收账款'] + data_wly['应收账款(上期余额)']) / 2), 4)

案例:计算茅台与五粮液的运营指标

我们为贵州茅台计算存货周转率和总资产周转率,并为五粮液计算应收账款周转率。

这展示了不同指标在不同公司背景下的应用。

案例代码:茅台与五粮液运营效率

下面的代码展示了计算过程,包括为获取期初数据而连接API。

核心计算逻辑展示

# (为茅台) 准备上期存货和总资产数据...
data['存货周转率'] = round(data['减:营业成本']/((data['存货']+data['存货(上期余额)'])/2),4)
data['总资产周转率'] = round(data['营业收入']/((data['资产总计']+data['资产总计(上期余额)'])/2),4)

# (为五粮液) 读取数据...
# (为五粮液) 准备上期应收账款数据 (注意原文错误)
# 正确应为 ts_code='000858.SZ'
df_2018 = pro.balancesheet(ts_code='000858.SZ', period='20181231')
# ...
data_wly['应收账款周转率'] = round(data_wly['营业收入']/((data_wly['应收账款']+data_wly['应收账款(上期余额)'])/2),4)

第三部分:偿债能力分析

Solvency Analysis

什么是偿债能力?

偿债能力是衡量企业财务安全性的关键。它分为:

  • 短期偿债能力: 企业应对即时债务支付的能力,关系到流动性
  • 长期偿债能力: 企业财务结构的稳定性,关系到持续经营的能力。

偿债能力指标概览

我们将学习三个经典的偿债能力指标。

  1. 流动比率: 衡量短期偿债能力的基础指标。
  2. 速动比率: 更严格的短期偿债能力测试。
  3. 利息保障倍数: 衡量长期偿债能力的核心指标。

指标一:流动比率 (Current Ratio)

流动比率是衡量短期偿债能力最常用的指标。

它表明企业每一元的流动负债,有多少元的流动资产作为偿还保障

流动比率的定义与公式

该比率是企业的流动资产与流动负债之比。

\[ \large{ \text{流动比率} = \frac{\text{流动资产总额}}{\text{流动负债总额}} } \]

传统经验认为,流动比率在2左右较为安全,但这也因行业而异。

在Python中计算流动比率

计算非常简单,只需两列相除。

关键代码:

data['流动比率'] = round(data['流动资产合计'] / data['流动负债合计'], 4)

指标二:速动比率 (Quick Ratio)

流动资产中,存货的变现能力相对较差。速动比率剔除了存货,能更严格地评估企业的短期偿债能力。

这个比率也被称为’酸性测试比率’ (Acid-Test Ratio)。

速动比率的定义与公式

该比率是企业速动资产与流动负债之比。

\[ \large{ \text{速动比率} = \frac{\text{流动资产总额} - \text{存货} - \text{预付款项}}{\text{流动负债总额}} } \]

一般认为速动比率大于1,企业的短期偿债风险较低。

在Python中计算速动比率

计算时从流动资产中减去存货和预付款项。

关键代码:

data['速动比率'] = round((data['流动资产合计'] - data['存货'] - data['预付款项']) / data['流动负债合计'], 4)

指标三:利息保障倍数 (Interest Coverage Ratio)

这是衡量企业长期偿债能力的重要指标。

它反映了企业经营利润偿付银行贷款等债务利息的能力。

利息保障倍数的定义与公式

该比率是企业息税前利润(EBIT)与利息费用之比。

\[ \large{ \text{利息保障倍数} = \frac{\text{息税前利润 (EBIT)}}{\text{利息费用}} } \]

这个倍数越高,说明企业偿付利息的能力越强,财务风险越小。

在Python中计算利息保障倍数

计算需要用到’息税前利润’和’减:利息支出’字段。

关键代码:

data['利息保障倍数'] = round(data['息税前利润'] / data['减:利息支出'], 4)

案例:计算贵州茅台的偿债能力

我们以贵州茅台为例,计算其2019-2023年期间的三个偿债能力指标。

核心计算逻辑展示

# 假设 data 已合并好三张报表
# 计算流动比率
data['流动比率'] = round(data['流动资产合计']/data['流动负债合计'],4) 
print(data[['报告期','流动比率']])

# 计算速动比率
data['速动比率'] = round((data['流动资产合计']-data['存货']-data['预付款项'])/data['流动负债合计'],4) 
print(data[['报告期','速动比率']])

# 计算利息保障倍数
data['利息保障倍数'] = round(data['息税前利润']/data['减:利息支出'],4) 
print(data[['报告期','利息保障倍数']])

第四部分:成长能力分析

Growth Analysis

什么是成长能力?

成长能力是评价企业未来发展潜力的关键。

成长性指标通常是同比指标,即与上一年同期的数据进行比较,衡量扩张的速度。

它回答:公司业务规模和盈利水平的扩张速度有多快?

成长能力指标概览

我们将分析三个核心的成长性指标,它们与盈利能力的三个核心指标一一对应。

  1. 营业收入增长率: 衡量业务规模的扩张速度 (’量’的增长)。
  2. 营业利润增长率: 衡量主营业务盈利的增长情况。
  3. 净利润增长率: 衡量最终盈利成果的增长速度 (’质’的增长)。

指标一:营业收入增长率

营业收入增长率直观地反映了公司市场扩张的速度。

它是所有增长的源头,常被称为’Top-line growth’。

营收增长率的定义与公式

该比率是指企业本年营业收入增加额与上年营业收入总额的比率。

\[ \large{ \text{营收增长率} = \frac{\text{本年营收} - \text{上年营收}}{\text{上年营收}} } \]

在Python中计算营收增长率

计算需要用到当期和上一期的营业收入数据。

关键代码:

# 假设'营业收入(上期余额)'列已准备好
data['营业收入增长率'] = round((data['营业收入'] - data['营业收入(上期余额)']) / data['营业收入(上期余额)'], 4)

指标二:营业利润增长率

营业利润的增长不仅要看收入的扩张,还要看成本费用的控制。

这是衡量成长’质量’的重要指标。

营业利润增长率的定义与公式

该比率是企业本年营业利润增长额与上年营业利润总额的比率。

\[ \large{ \text{营业利润增长率} = \frac{\text{本年营业利润} - \text{上年营业利润}}{\text{上年营业利润}} } \]

如果利润增长率 > 收入增长率,通常说明公司的盈利能力在增强。

在Python中计算营业利润增长率

计算需要用到当期和上一期的营业利润数据。

关键代码:

# 假设'营业利润(上期余额)'列已准备好
data['营业利润增长率'] = round((data['营业利润'] - data['营业利润(上期余额)']) / data['营业利润(上期余额)'], 4)

指标三:净利润增长率

净利润增长率是衡量企业最终盈利成果增长速度的指标。

它反映了为股东创造的价值(每股收益EPS)的增长情况,常被称为’Bottom-line growth’。

净利润增长率的定义与公式

该比率反映企业本期净利润增加额与上期净利润总额的比率。

\[ \large{ \text{净利润增长率} = \frac{\text{本期净利润} - \text{上期净利润}}{\text{上期净利润}} } \]

在Python中计算净利润增长率

计算需要用到当期和上一期的净利润数据。

关键代码:

# 假设'净利润(上期余额)'列已准备好
data['净利润增长率'] = round((data['净利润'] - data['净利润(上期余额)']) / data['净利润(上期余额)'], 4)

案例:计算贵州茅台的成长能力

我们继续以贵州茅台为例,计算其2019-2023年期间的三个成长能力指标。

核心计算逻辑展示

# 获取2018年的收入、营业利润、净利润数据... (此处省略)
# 构造'上期余额'列...

# 计算营业收入增长率
data['营业收入增长率'] = round((data['营业收入']-data['营业收入(上期余额)'])/data['营业收入(上期余额)'],4)

# 计算营业利润增长率 (注意原文笔误 df_2014)
data['营业利润增长率'] = round((data['营业利润']-data['营业利润(上期余额)'])/data['营业利润(上期余额)'],4)

# 计算净利润增长率
data['净利润增长率'] = round((data['净利润']-data['净利润(上期余额)'])/data['净利润(上期余额)'],4)

综合案例一:生成单一公司财务比率总表

Putting It All Together: Single Company

案例目标:自动化生成茅台财务比率总表

我们的目标是编写一个Python脚本,实现从数据获取到最终报表生成的全自动化流程

  1. 获取数据: 从Tushare Pro获取贵州茅台多年的三张报表。
  2. 数据处理: 合并报表,准备计算所需的’上期余额’。
  3. 批量计算: 一次性计算四大类的全部13个核心指标。
  4. 结果输出: 将计算结果整理成一个专业的财务比率表,并存入Excel文件。

自动化流程设计

我们将整个过程设计成一个清晰的流水线。

单一公司财务比率生成流程 一个包含四个步骤的流程图:获取原始数据,合并与处理,批量计算比率,输出到Excel。 1. 获取原始数据 (Tushare API) 2. 合并与处理 (.merge, .shift) 3. 批量计算比率 (13个指标) 4. 输出Excel表 (.to_excel)

步骤1: 封装数据获取函数 access_data

为了代码的复用性,我们首先定义一个函数,专门用于获取并保存指定公司的三张报表。

核心逻辑:

def access_data(comps, codes, years):
    for i in range(len(comps)):
        # 为每家公司循环获取多年数据
        for year in years:
            df_balance0 = pro.balancesheet(...)
            # ... 获取 income, cashflow ...
            # 拼接各年份报表
            df_balance = df_balance.append(df_balance0)
        # ... 重命名列 & 保存到Excel ...

步骤2: 数据合并与预处理

获取数据后,我们将三张报表合并,并使用一个非常巧妙的技巧来创建’上期余额’列。

关键代码:

# 合并三张表
data = pd.merge(...)
data = pd.merge(...)

# 批量创建'上期'列
columns0 = ['股东权益合计(不含少数股东权益)', '存货', '资产总计', ...]
for column in columns0:
    data[column+'(上期)'] = data[column].shift(-1)

技术细节:shift(-1) 的妙用

data[column].shift(-1) 会将 column 列的数据向上移动一行。

这使得当前行的’上期余额’正好等于下一行的’当期余额’,完美地为我们准备好了计算同比和平均值所需的数据。

报告期 营业收入 营业收入(上期)
2023 1505 1275
2022 1275 1094
2021 1094

步骤3 & 4: 批量计算与保存

准备好数据后,我们就可以像之前一样,一行一行地计算所有13个指标。

最后,整理格式并使用pd.ExcelWriter以追加模式(mode='a')写入新的sheet。

关键代码:

# ... (13行计算代码) ...

# 提取、转置、重命名表头
df_ratio = data[['报告期', '毛利率', ...]]
df_ratio = df_ratio.T 
df_ratio.columns = df_ratio.iloc[0]
df_ratio = df_ratio[1:]

# 追加写入Excel
writer = pd.ExcelWriter(comp+'2018-2023.xlsx', mode="a", engine="openpyxl")
df_ratio.to_excel(writer, '财务比率表')
writer.save()

最终成果:专业的财务比率表

脚本运行结束后,我们会得到一个更新后的Excel文件,其中包含一个新的’财务比率表’sheet。

这张表清晰地展示了公司过去几年在四大维度上的财务表现,为进一步的分析和可视化打下了坚实基础。

综合案例二:生成多家公司对比分析总表

From Analysis to Comparison: Multi-Company

案例目标:批量分析’茅五泸’

背景:贵州茅台、五粮液、泸州老窖是中国高端白酒市场的三巨头。对它们进行横向对比,能帮我们理解各家的竞争优势和行业格局。

目标:将上一节的脚本函数化,实现对’茅五泸’三家公司财务比率的批量生成与存储。

核心思想:函数化封装与批量调用

编程中有一个重要原则:DRY (Don’t Repeat Yourself)

我们将上一节的核心逻辑封装进一个函数 ratio_sheet(comp),然后通过一个简单的循环,批量调用这个函数,为每家公司生成分析报告。

步骤1: 定义 ratio_sheet 函数

我们把从’读取Excel’到’保存比率表’的全部代码,都放进一个名为 ratio_sheet 的函数里。这个函数只接收一个参数:公司名称 comp

函数骨架:

def ratio_sheet(comp):
    # 1. 读取三张报表
    df_balancesheet = pd.read_excel(comp + '2018-2023.xlsx', ...)
    # ...
    
    # 2. 报表拼接
    data = pd.merge(...)
    
    # 3. 数据预处理 (fillna, shift)
    # ...
    
    # 4. 批量计算13个指标
    # ...

    # 5. 整理格式并保存到原Excel文件
    # ...

步骤2: 批量调用

定义好函数后,我们就可以用一个 for 循环来自动化处理所有公司。

主程序逻辑:

# 批量需要获取数据的公司名称、股票代码、年份
comps = ['贵州茅台','五粮液','泸州老窖']
codes = ['600519.SH','000858.SZ','000568.SZ']
years = [2023,2022,2021,2020,2019,2018]

# 第一步:批量获取并保存原始报表
access_data(comps, codes, years)

# 第二步:批量生成比率分析表
for comp in comps:
  print(comp)
  ratio_sheet(comp) # 调用核心函数
  print("-----------------------------------")

案例成果与展望

当代码运行结束后,我们将得到三个独立的Excel文件,每个文件都包含了对应公司的原始报表和我们生成的财务比率表。

下一步是什么?

有了这些标准化的数据,我们就可以进行更深入的可视化对比分析,例如绘制’茅五泸’的ROE、毛利率等关键指标的历年走势对比图。这将是我们下一章的主题。

本章总结

今天,我们系统地学习了财务比率分析的理论与实践。

  • 理解了 盈利、运营、偿债、成长四大分析维度的商业内涵
  • 掌握了 13个核心财务指标的计算公式与解读方法
  • 实践了 使用Python和pandas自动化处理财务数据的全过程。
  • 实现了 从单一公司分析到多公司横向对比的分析框架升级。

Q & A

有问题吗?