怎么用 Python 获取股票 PB、PE 历史数据:去哪找数据指南
需要先说明一点:A 股个股的历史 PE/PB 数据可以免费获取,配合 Python 仅需几行代码即可完成调用。更需要注意的不是数据难找,而是同一只股票在不同来源给出的 PE 数值往往对不上——有的是动态 PE,有的是静态 PE,有的是滚动 PE(TTM)。因此,弄清口径比找到数据更为关键。
以下按来源分类,逐条说明各渠道能提供什么、有哪些限制、是否需要付费,供你按需选择。
A 股免费易用来源:建议优先尝试
1. AKShare:免注册、免 token,pip 安装即可使用
- 链接:AKShare 股票数据文档
- 数据内容:接口
stock_a_indicator_lg可直接返回个股的历史 PE、PE-TTM、PB、股息率、总市值,按交易日排列;底层数据来自乐咕乐股网。另有接口stock_zh_valuation_baidu,支持选择近一年、三年、五年、十年或全部时间范围。 - 使用方式:在 Python 中执行
pip install akshare,随后几行代码即可拉取。免费、开源,无需令牌。 - 注意事项:由于依赖第三方网站(乐咕乐股、百度),上游改版时接口可能临时失效,建议关注库的更新。
- 配套资源:AKShare 数据字典 可查询全部金融数据接口,免费使用。
2. Tushare Pro:覆盖全市场逐日数据,设有积分门槛
- 链接:Tushare Pro 每日指标文档
- 数据内容:接口
daily_basic包含pe、pe_ttm、pb字段,覆盖全市场,按日提供。 - 注意事项(重要):需注册获取 token,并有积分要求——文档标注至少需 2000 积分才可调用,5000 积分后无总量限制。单次最多返回约 6000 条,需循环获取。若使用免费额度拉取全市场完整历史,额度可能不足。
3. 乐咕乐股网:AKShare 的部分数据源头
- 链接:legulegu.com
- 数据内容:网页可直接查看 A 股个股及整体市场(上证、深证、创业板、科创板)的 PE/PB 历史走势,含权重值与中位数。AKShare 取用的即为该站数据。
- 注意事项:网页可供查看,商用许可请以官方页面为准。
4. AData:开源免费备选方案
- 链接:GitHub - 1nchaos/adata
- 数据内容:免费开源,融合多个数据源,主打行情、K 线、概念数据。估值字段(PE/PB)的覆盖程度请以仓库文档为准,建议先确认再使用。
A 股研究级来源:口径统一、可引用
5. CSMAR(国泰安):学术级、口径统一,需机构订阅
- 链接:data.csmar.com
- 数据内容:A 股估值、财务面板数据,口径统一,可用于论文引用。
- 注意事项:通常需要高校或机构图书馆订阅,或按数据集申请购买;可使用 edu 邮箱注册并绑定机构。个人免费获取全样本基本不可行,具体以官方页面为准。
6. CnOpenData:含财务报表,可推算估值
- 链接:cnopendata.com 上市公司财务报表
- 数据内容:A 股上市公司财务报表、财务指标数据,可据此自行计算估值。
- 注意事项:多数数据集需按集申请,可能收费,具体免费范围以官方页面为准。
现成数据集与可复现代码:适合无需自行编码的场景
7. 百度飞桨 AI Studio · 开放数据集
- 链接:aistudio.baidu.com/datasetoverview
- 数据内容:提供上千个开放数据集,并附可直接运行的 notebook(如官方 LSTM 预测 A 股走势教程)。
- 注意事项:可在站内搜索“股票 / A 股 / 行情”等关键词;某个数据集是否确实包含历史 PE/PB,需逐一打开查看,许可以各数据集页面为准。
8. 和鲸社区(Heywhale)
- 链接:heywhale.com
- 数据内容:国内数据科学平台,提供数据集与可复现的实战项目。
- 注意事项:同样需站内搜索,确认是否包含历史估值的股票数据集;下载与许可以平台页面为准。
美股 / 港股 / 全球来源:免费但存在局限
9. yfinance:以当前快照为主,非历史序列
- 参考链接:algotrading101 yfinance 指南
- 数据内容:
stock.info中包含trailingPE(滚动 PE)、forwardPE(预期 PE)、priceToBook(市净率)等字段,覆盖美股、港股及全球市场。 - 关键注意事项:返回的多为当前时点快照,不直接提供历史 PE/PB 时间序列。如需历史数值,需自行通过“历史价格 × 股数 / 账面价值”反算,或按月循环抓取。此外接口稳定性一般,存在限流。免费。
10. Kaggle:现成 CSV 数据集,以美股居多
- US Stock Market Data:kaggle.com/datasets/mohammedobeidat/us-stock-market-data
- S&P 500 Companies with Financial Information:kaggle.com/datasets/franoisgeorgesjulien/s-and-p-500-companies-with-financial-information
- 数据内容:现成 CSV,含基本面与技术面数据,多为美股。
- 注意事项:下载需要 Kaggle 账号。各数据集覆盖的年限、字段及是否包含历史 PE/PB,请下载前逐一查看说明。
常见误区与注意事项
1. 口径不一致是最易出现的问题
PE 分为动态、静态、滚动(TTM)等口径,还需关注是否包含亏损股的负值、采用何种复权方式、是否剔除停牌。不同来源的算法不同,数值自然存在差异。在合并使用多个来源前,应先统一口径,否则会影响结论的可靠性。
2. 接口可能失效
依赖第三方网站的接口(如 AKShare),在上游改版后可能无法使用,建议持续关注库的更新。
3. 许可与商用范围
各数据集与网站的使用许可不尽相同,能否商用、能否再分发,应以各自官方页面为准,不要默认“免费即可随意使用”。CSMAR、CnOpenData 等通常绑定机构权限。
4. 下载前确认字段
对于 Kaggle、AI Studio、和鲸等平台的数据集,应先确认其覆盖的年限及是否包含所需字段,避免下载后才发现缺少历史 PE/PB。
难以确定时,可委托专业检索
面对上述众多来源,哪个真正可用、哪个存在限制、哪个口径符合你的需求,往往需要逐一核实。如果你不希望逐个接口尝试后才发现无法获取完整历史,或担心混用不同来源导致结论偏差——
数聚天成 DeepSData 提供数据可得性深度检索服务。你只需说明需要查找的股票范围(A 股 / 美股 / 港股)、目标年份以及所需的 PE 口径(动态 / 静态 / TTM),我们会代为检索,并如实反馈数据能否找到、哪条路径更为高效。我们不承诺必然命中,也不代为下载第三方原始数据,仅就可得性给出客观结论。
在正式投入前,可先由我们协助摸清数据的可获取情况。
参考来源
- https://akshare.akfamily.xyz/data/stock/stock.html
- https://github.com/akfamily/akshare
- https://zhuanlan.zhihu.com/p/521504291
- https://tushare.pro/document/2?doc_id=32
- https://legulegu.com/
- https://legulegu.com/stockdata/shanghaiPE
- https://blog.csdn.net/zhangyunchou2015/article/details/147192300
- https://www.kaggle.com/datasets/mohammedobeidat/us-stock-market-data
- https://www.kaggle.com/datasets/usfundamentals/us-stocks-fundamentals
- https://www.kaggle.com/datasets/stacknishant/nifty-500-historical-data-with-pe-and-dividend-yield
- https://www.phbs.pku.edu.cn/info/1431/57391.htm
- https://data.worldbank.org/indicator/CM.MKT.LCAP.GD.ZS
- https://blogs.worldbank.org/en/opendata/introducing-wbgapi-new-python-package-accessing-world-bank-data
