← 返回目录
q1.6动手⏱ 约 9 分钟

基本面数据:量化地读估值与财报

一个百分位数字,替你回答「现在的市场贵不贵」

🔎 最后验证 2026-07📚 来源:akshare 官方文档(stock_index_pe_lg / stock_financial_abstract)、本节全部数字于 2026-07 实测得出🧰 akshare 1.18.x、pandas
为什么学这个

技术指标(上一节)盯的是价格自己;但价格背后还站着两个更根本的问题:这家公司赚不赚钱?市场给它的定价,贵还是便宜?——这就是基本面。

「贵不贵」听起来像玄学,今天我们把它变成一个具体的数字:你会亲手算出「当前的沪深300,处在过去 21 年估值的第 64.6 个百分位」。一个数,替你回答「现在的市场在历史坐标系里站在哪」。

照例,学会算它的同一节课里,我也要讲清:这个数字不能拿来干什么——这半节比前半节更值钱。

💡 打个比方

市盈率(PE)像房价收入比:一套房 500 万贵不贵?说不好——但「房价是当地家庭年收入的 40 倍」一出口,你立刻有感觉了。

PE 就是股票世界的这个比值:市值是年利润的多少倍。而「历史百分位」更进一步:不光告诉你倍数,还告诉你这个倍数在过去二十年里算高算低——像告诉你「40 倍的房价收入比,已经超过了这座城市历史上 90% 的时期」。

一、指数的估值体检:三行拿到 21 年市盈率

继续用对新手最友好的姿势——看指数整体(不挑个股,零荐股风险)。akshare 有现成接口:

import akshare as ak
import pandas as pd

pe = ak.stock_index_pe_lg(symbol="沪深300")
pe["日期"] = pd.to_datetime(pe["日期"])
pe = pe.set_index("日期").sort_index()

s = pe["滚动市盈率"].dropna()
print(s.tail(3))
print("历史区间:", round(s.min(), 2), "~", round(s.max(), 2))

2026-07 实测:数据从 2005-04-08 起共 5177 天,滚动市盈率最低 7.87、最高 50.77——同一个指数,市场曾经愿意出 50 倍的价,也曾只肯出 8 倍。估值不是常数,是情绪的体温。

二、灵魂一击:历史百分位

当前值和历史一比,「贵不贵」就有了坐标:

cur = s.iloc[-1]
pct = (s <= cur).mean()   # 历史上有多少时间比现在便宜
print(f"当前滚动PE:{cur:.2f},处于历史第 {pct*100:.1f} 百分位")

2026-07 实测输出:当前滚动 PE 13.64,处于历史第 64.6 百分位——过去 21 年里,约 65% 的时间比现在便宜、35% 的时间比现在贵。不算便宜,也谈不上狂热,就在中间偏上一点的位置。

你刚刚完成了一次专业机构日常在做的「估值定位」。注意我们的措辞:它是描述,不是操作指令——64.6% 这个数,既不是「该买」也不是「该卖」,它只是给你一双看清位置的眼睛。

三、公司的账本:财务摘要一把拉

个股层面(以 000001 为例,仅演示接口,不构成推荐),akshare 能直接拉出整张财务摘要:

ab = ak.stock_financial_abstract(symbol="000001")
print(ab.shape)                       # 实测 (80, 124):80项指标 × 各报告期
print(ab["指标"].head(8).tolist())    # 归母净利润/营业总收入/净资产…

row = ab[ab["指标"] == "归母净利润"].iloc[0]
print("最新报告期归母净利润:", round(float(row["20260331"]) / 1e8, 1), "亿元")

2026-07 实测:该公司 2026 一季报归母净利润 145.2 亿元;表里还有 ROE(净资产收益率)等 80 项指标——q0.3 说 AI 擅长「读财报」,而这里是财报的结构化原料,以后让大模型帮你读的,就是这些东西(q1.11 见)。

⚠️ 避坑⚠️ 坑一:PE 跨行业比较 = 拿房价收入比去比菜价

「这只银行股 PE 才 5 倍,那只科技股 50 倍,银行股便宜 10 倍!」——错得很经典

不同行业的商业模式、增长预期、会计特征天差地别:银行的 5 倍和科技公司的 50 倍根本不在一个坐标系里。这正是本节示例用「指数自己跟自己的历史比」的原因——纵比(和自己的过去比)远比横比(和别人比)靠谱。另外低 PE 也可能是「低估值陷阱」:市场提前嗅到了利润要垮,分母还没来得及跌。

⚠️ 避坑⚠️ 坑二:财报是后视镜,而且口径里全是细节

两个实操级提醒:

  • 滞后:一季报 4 月底才披露完,你 7 月读到的「最新」利润是三个多月前的经营结果。财报反映过去,市场定价未来——这时间差就是「利好出尽」现象的土壤(q0.3 讲过)。
  • 口径:刚才拉到的 ROE 是单季 2.83%——别和「年化 ROE 11%」直接对比,差 4 倍的不是业绩是口径(单季 vs 累计 vs 滚动12个月)。用任何财务数字前,先问一句:这是什么口径?——这个习惯能帮你避开一半的财报误读。
❓ 测验
你算出当前沪深300滚动PE处于历史第 64.6 百分位。下面哪个理解是对的?
✏️ 填空
估值比较的铁律:___ 比(和自己的历史比)远比横比(和别的行业比)靠谱。

📌 免责:本课为技术科普,文中估值分位、财务数字均为公开数据实测,仅用于方法教学;不构成任何投资建议、估值判断或买卖依据;个股代码仅为接口演示;投资有风险,盈亏自负。

✅ 小结

这一节你把「贵不贵」从玄学变成了坐标:滚动 PE 13.64 = 历史第 64.6 百分位;也学会了拉公司财务摘要,并拿到了两个保命习惯——纵比优于横比用数字先问口径

到现在,你的工具箱已经齐了:数据(q1.2)、体检(q1.3)、图(q1.4)、技术指标(q1.5)、基本面(q1.6)。

下一节,动真格的:把一个交易想法写成「策略规则书」——买什么、何时买、买多少、何时卖,白纸黑字、一个模糊词都不许留。你还会看到一个有意思的选择:我们明知金叉在统计上很平庸(q1.5 刚判过),却偏偏要用它当第一个策略——为什么?这个「为什么」,恰恰是这门课和割韭菜课的分水岭。

下一节 → 第一个策略:把规则写死
🔎 来源与核验· 3 条,点开核对
本节每个关键论断都对应一个可追溯的来源 —— 这是本课程"靠谱、不过时"的底线。
「沪深300滚动市盈率(2005-04-08起5177日):区间7.87~50.77,2026-07-29当前13.64,历史百分位64.6%」
📚 akshare stock_index_pe_lg 本节 2026-07 实测✓ 已核验 2026-07
「stock_financial_abstract 返回约80项指标×各报告期;示例公司2026Q1归母净利润145.2亿元、单季ROE 2.83%」
📚 akshare 本节 2026-07 实测✓ 已核验 2026-07
「PE跨行业不可直接比较;低PE可能为估值陷阱;财报存在披露滞后与口径差异(单季/累计/TTM)」
📚 财务分析通识✓ 已核验 2026-07
估值与财务数据仅作教学演示,不构成对任何指数、行业或个股的判断;数据以交易所及数据源官方口径为准。
智图软件的赞赏码
都看到这了,打个赏呗!
接下来 · q1.7
第一个策略:把规则写死
继续读下一节 →