行业估值 (cn_stock_industry_valuation)

数据描述: 平台计算了申万和中信两大行业分类中一二级行业的估值指标,包括市盈率(PE)和市净率(PB),具体公式可参见数据文档。

文档
数据简介

## 一、数据简介 本表提供申万和中信行业分类下一级、二级行业的估值指标,包括静态市盈率 `pe_trailing`、滚动市盈率 `pe_ttm` 和市净率 `pb`。每个行业分类标准下的每个行业、每个交易日一行。行业成分取自 `cn_stock_industry_component`,计算公式和成分股筛选规则见下文。 - 数据起始时间:2006-04-13 - 数据结束时间:2026-10-30 - 数据更新频率:每个交易日 > 注:若起止时间为None,则表示当前没取到数据,请咨询客服 ## 二、主键说明 | 关键字 | 释意 | | --- | --- | | date | 交易日 | | instrument | 行业代码,与 `industry_code` 相同 | | industry | 行业分类标准,取值为 `sw2021`(申万 2021 版)、`sw2014`(申万 2014 版)、`cs`(中信) | ## 三、字段说明 | 字段 | 释意 | | --- | --- | | industry_level | 行业等级:1 为一级行业,2 为二级行业。本表没有三级行业 | | industry_code | 行业代码 | | industry_name | 行业简称 | | component_nums | 参与计算的成分股数量,是经过下文筛选后的数量,不是行业的全部成分股数量 | | pe_trailing | 静态市盈率,公式见下文 | | pe_ttm | 滚动市盈率,公式见下文 | | pb | 市净率,公式见下文 | ## 四、计算公式 以下公式中,求和范围是行业在交易日 `date` 通过筛选的成分股,字段均取自该交易日。 ```text free_float_size = free_float_shares * close 自由流通市值,free_float_shares 来自 cn_stock_shares,close 来自 cn_stock_real_bar1d(未复权) total_size = total_shares * close 总市值,total_shares 来自 cn_stock_shares ratio = free_float_size / total_size 自由流通比例 ``` ### 1. 静态市盈率 ```text pe_trailing = sum(free_float_size) / sum(FE) FE = net_profit_lf * ratio ``` `net_profit_lf` 取自 `cn_stock_financial_lf_shift`,按交易日所在月份选择报告期: - 1 月至 4 月:上一年中报(06-30),数值乘以 2 年化 - 5 月至 8 月:上一年年报(12-31),不乘 2 - 9 月至 12 月:当年中报(06-30),数值乘以 2 年化 ### 2. 滚动市盈率 ```text pe_ttm = sum(free_float_size) / sum(FE_TTM) FE_TTM = net_profit_ttm * ratio ``` `net_profit_ttm` 取自 `cn_stock_financial_ttm_shift`,为最近 4 个季度的净利润。 ### 3. 市净率 ```text pb = sum(free_float_size) / sum(total_owner_equity_lf) ``` `total_owner_equity_lf` 取自 `cn_stock_financial_lf_shift`,为最新的所有者权益。分母直接求和,没有像市盈率那样乘以自由流通比例 `ratio`。 三个指标均保留 2 位小数。 ## 五、行业成分股筛选 - 行业成分:按 `cn_stock_industry_component` 中该交易日、该行业分类标准下的一级、二级行业代码确定。 - 板块范围:剔除北交所股票,沪深两市的其他 A 股均参与计算,不区分主板、中小板、创业板、科创板。 - 亏损股:`net_profit_to_parent_shareholders_lf` 和 `net_profit_to_parent_shareholders_ttm` 不大于 0 的股票被剔除,缺失值同样被剔除。 - 净资产:`total_owner_equity_lf` 不大于 0 的股票被剔除。 - 新股:上市日期距交易日不超过 10 个自然日的股票被剔除,即上市满 11 个自然日起才参与计算。 - 停牌与 ST:不剔除停牌股票,不剔除 ST 股票。 - 样本数量:筛选后行业内股票数量不超过 5 只时,`pe_trailing`、`pe_ttm`、`pb` 在表中存为 0,不是空值。 ## 六、注意事项 - 剔除亏损股的条件看的是归属母公司股东的净利润,而计算公式分母里用的是 `net_profit_lf` 和 `net_profit_ttm`,两者口径不同,所以 `pe_ttm` 在样本数量大于 5 时仍可能为负数,已观察到的最小值为 -2063.92。 - `pb` 的分子是自由流通市值,分母是全部所有者权益,分母没有按自由流通比例折算,数值低于以总市值计算的市净率,例如 2026-10-16 中信石油石化(100000)的 `pb` 为 0.14。使用时请注意这一口径。 - `component_nums` 的数据类型是 int8,取值范围 -128 至 127,表中出现了大量负数取值,例如 2026-10-22 申万 2021 版电力设备(630000)为 -3、计算机(710000)为 -122,负数取值不能当作成分股数量使用。 - 各行业分类标准的起始日期不同:`sw2021` 从 2006-04-13 开始,`cs` 和 `sw2014` 从 2024-10-24 开始。 - 早期数据较稀疏:`sw2021` 平均每个交易日的行数,2006 年约 63 行,2007 年约 17 行,2008 年起超过 150 行。 - 样本数量不超过 5 只的行业,指标存为 0,使用时请先过滤 `component_nums`,并注意上一条所述的负数问题,或者直接过滤 `pb > 0`。 ## 七、示例代码 ```python import dai dai.query(""" SELECT * FROM cn_stock_industry_valuation WHERE industry='sw2021' AND industry_level=1 AND pb > 0 """, filters={"date": ["2024-01-01", "2024-10-01"]}).pl() ``` ## 八、示例数据 取 2026-10-24 至 2026-10-31,按交易日、行业代码、行业分类标准排序,展示前 5 行和后 5 行。 | date | instrument | industry | industry_level | industry_code | industry_name | component_nums | pe_trailing | pe_ttm | pb | |:--------------------|-------------:|:-----------|-----------------:|----------------:|:----------------|-----------------:|--------------:|---------:|-----:| | 2026-10-26 00:00:00 | 100000 | cs | 1 | 100000 | 石油石化 | 36 | 9.83 | 13.43 | 0.14 | | 2026-10-26 00:00:00 | 101000 | cs | 2 | 101000 | 石油开采Ⅱ | 6 | 11.15 | 13.71 | 0.11 | | 2026-10-26 00:00:00 | 102000 | cs | 2 | 102000 | 石油化工 | 22 | 7.77 | 12.14 | 0.18 | | 2026-10-26 00:00:00 | 103000 | cs | 2 | 103000 | 油服工程 | 8 | 18.39 | 19.5 | 0.38 | | 2026-10-26 00:00:00 | 110000 | cs | 1 | 110000 | 煤炭 | 21 | 12.11 | 13.9 | 0.3 | | 2026-10-30 00:00:00 | 760200 | sw2021 | 2 | 760200 | 环保设备Ⅱ | 16 | 20.56 | 22.09 | 0.81 | | 2026-10-30 00:00:00 | 770000 | sw2021 | 1 | 770000 | 美容护理 | 22 | 19.27 | 23.88 | 0.87 | | 2026-10-30 00:00:00 | 770100 | sw2021 | 2 | 770100 | 个护用品 | 10 | 21.1 | 27.62 | 0.72 | | 2026-10-30 00:00:00 | 770200 | sw2021 | 2 | 770200 | 化妆品 | 10 | 16.03 | 19.41 | 0.86 | | 2026-10-30 00:00:00 | 770300 | sw2021 | 2 | 770300 | 医疗美容 | 2 | 0 | 0 | 0 | ## 通用文档 ## 【行业分类基础知识】一、行业分类映射表 平台已收集 申万(2021)、申万(2014)、中信、恒生 行业分类数据,对应的三级行业代码和名称可去 **cn_stock_industry** 表中查询: <https://bigquant.com/data/datasources/cn_stock_industry>。

用例
* 查询某一天,申万2021版本所有行业的估值数据 ``` import dai dai.query(""" SELECT * FROM cn_stock_industry_valuation WHERE industry='sw2021' """, filters={"date": ["2024-10-25", "2024-10-25"]}).df() ``` * 查询申万2024版本中的农林牧渔一级行业的估值数据 ``` import dai dai.query(""" SELECT * FROM cn_stock_industry_valuation WHERE industry='sw2021' AND industry_name='农林牧渔' """, filters={"date": ["2024-01-01", "2024-10-25"]}).df() ```
表结构
字段 字段类型 字段描述
__PARTITION__ int64 -
component_nums int8 成分股数量
pb double 市净率,公式见文档
pe_ttm double 滚动市盈率,公式见文档
industry string 行业标准,包含:sw2021, sw2014, cs
pe_trailing double 静态市盈率,公式见文档
industry_code string 行业代码
industry_name string 行业简称
date timestamp[ns] 日期
industry_level int8 行业等级。1为一级行业;2为二级行业;3为三级行业
instrument string 证券代码,即行业代码(=industry_code)

表名:cn_stock_industry_valuation

起始时间:

最近更新时间: