本站长期对外提供专业、规范、已深度清洗的金融量化与经管实证研究数据库。
本次整理上架的是**【最新 2025】华证(Huazheng)上市公司 ESG 评级评分全量专题数据包**(覆盖 2009 至 2025 年)。数据包整合了全部 A 股上市公司的季度与年度评级表现、分项得分及行业分歧数据,是进行可持续发展研究、绿色金融评估、企业社会责任实证回归及多因子量化选股的首选基础数据。
📦 数据包规格与商品详情
- 数据名称:华证 ESG 评级评分数据库(上市公司 ESG 表现 / ESG 分歧数据)
- 时间跨度:2009 年 - 2025 年(持续更新至最新)
- 数据量级:
- 🟢 季度面板数据:共 229,479 条 记录
- 🔴 年度面板数据:共 57,453 条 记录
- 数据格式:标准
.xlsx(Excel)/.csv/.dta(Stata 格式可选),字符编码为 UTF-8 - 发货方式:拍下后网盘直发(百度网盘 / 阿里云盘 / 夸克网盘),秒级自动发送下载链接
- 售后与购买须知:
- 标价即卖价,打包一口价;
- 数据属于数字化虚拟资料,一旦发出非数据文件本身损坏不退不换,感谢理解;
- 数据文件均整理自权威公开渠道并经严格多轮交叉核验,仅供学术科研、教学交流及投资策略回测使用;
- 欢迎高校师生、科研机构与量化团队直接拍购或留言咨询!
一、数据包核心字段与数据模式(Schema)
🟡 数据集包含的完整核心字段清单如下:
| 字段名称 | 业务含义 | 数据类型 | 取值示例与说明 |
|---|---|---|---|
证券代码 | A 股上市公司股票代码 | String (6位) | 000001, 600519, 300750 |
年份 / 报告期 | 统计年度与季度时间节点 | String / Int | 2009-2025 / 2024Q3 |
证券简称 | 股票中文简称(含当期历史快照) | String | 平安银行, 贵州茅台, 宁德时代 |
综合评级 | 最终 9 档权威评级 | Enum | AAA, AA, A, BBB, BB, B, CCC, CC, C |
综合赋值 | 评级等级数值化映射 | Integer | 1 ~ 9(9代表AAA,1代表C) |
综合得分 | 综合量化百分制分值 | Float | 0.00 ~ 100.00 |
E评级 / E得分 | 环境支柱(Environmental)评级与得分 | Enum / Float | AAA~C / 0.00 ~ 100.00 |
S评级 / S得分 | 社会支柱(Social)评级与得分 | Enum / Float | AAA~C / 0.00 ~ 100.00 |
G评级 / G得分 | 公司治理(Governance)评级与得分 | Enum / Float | AAA~C / 0.00 ~ 100.00 |
行业 | 证监会行业分类门类与大类 | String | 制造业, 金融业, 信息技术服务业 等 |
二、附赠数据清洗与特征工程处理脚本
购买数据包后,我们附赠基于 Python polars / pandas 的标准化数据清洗脚本,帮助您快速完成前导零补齐、交易所代码推断、分歧度计算与格式校验:
import polars as plfrom typing import Dict
# 华证 9 档评级标准数值映射表RATING_MAP: Dict[str, int] = { "AAA": 9, "AA": 8, "A": 7, "BBB": 6, "BB": 5, "B": 4, "CCC": 3, "CC": 2, "C": 1}
def clean_esg_dataset(file_path: str, is_quarterly: bool = False) -> pl.DataFrame: # 1. 高速读取原始数据包 df = pl.read_csv(file_path, infer_schema_length=10000)
# 2. 规范化字段命名 cleaned = df.rename({ "证券代码": "symbol_raw", "年份": "report_year", "证券简称": "company_name", "综合评级": "overall_rating", "综合赋值": "overall_numeric_rank", "综合得分": "overall_score", "E评级": "e_rating", "E得分": "e_score", "S评级": "s_rating", "S得分": "s_score", "G评级": "g_rating", "G得分": "g_score", "行业": "industry" })
# 3. 代码标准化:补齐 6 位前导零并添加交易所后缀 cleaned = cleaned.with_columns([ pl.col("symbol_raw").cast(pl.Utf8).str.zfill(6).alias("symbol"), pl.col("report_year").cast(pl.Int32) ])
cleaned = cleaned.with_columns( pl.when(pl.col("symbol").str.starts_with("6")) .then(pl.lit("SH")) .when(pl.col("symbol").str.starts_with("0") | pl.col("symbol").str.starts_with("3")) .then(pl.lit("SZ")) .when(pl.col("symbol").str.starts_with("8") | pl.col("symbol").str.starts_with("4") | pl.col("symbol").str.starts_with("9")) .then(pl.lit("BJ")) .otherwise(pl.lit("UNKNOWN")) .alias("exchange") )
# 4. 数值类型转换与映射校验 cleaned = cleaned.with_columns([ pl.col("overall_rating").map_elements(lambda r: RATING_MAP.get(str(r).strip(), None), return_dtype=pl.Int32).alias("computed_rank"), pl.col("overall_score").cast(pl.Float64), pl.col("e_score").cast(pl.Float64), pl.col("s_score").cast(pl.Float64), pl.col("g_score").cast(pl.Float64), ])
# 5. 特征工程:计算 ESG 三支柱离散度(衡量企业表现均衡度) cleaned = cleaned.with_columns( ( ((pl.col("e_score") - pl.col("overall_score")).pow(2) + (pl.col("s_score") - pl.col("overall_score")).pow(2) + (pl.col("g_score") - pl.col("overall_score")).pow(2)) / 3.0 ).sqrt().alias("esg_pillar_dispersion") )
return cleaned
if __name__ == "__main__": quarterly_df = clean_esg_dataset("huazheng_esg_quarterly_2009_2025.csv", is_quarterly=True) print(f"✅ 华证 ESG 季度数据包加载成功,总记录数: {len(quarterly_df)}")三、PostgreSQL / TimescaleDB 面板数仓建表模板
如需将数据包导入数据库进行量化回测或 BI 呈现,可直接运行以下 DDL:
-- 创建华证 ESG 时序面板表CREATE TABLE listed_company_esg_ratings ( id BIGSERIAL, symbol VARCHAR(12) NOT NULL, -- 股票代码如 000001.SZ company_name VARCHAR(64) NOT NULL, period_type VARCHAR(8) NOT NULL, -- 'ANNUAL' 或 'QUARTER' period_date DATE NOT NULL, -- 报告期结束日期 report_year INT NOT NULL, industry VARCHAR(64),
overall_rating VARCHAR(4) NOT NULL, overall_rank INT NOT NULL CHECK (overall_rank BETWEEN 1 AND 9), overall_score NUMERIC(5, 2) NOT NULL,
e_rating VARCHAR(4), e_score NUMERIC(5, 2), s_rating VARCHAR(4), s_score NUMERIC(5, 2), g_rating VARCHAR(4), g_score NUMERIC(5, 2),
pillar_dispersion NUMERIC(5, 2), created_at TIMESTAMPTZ DEFAULT NOW(),
PRIMARY KEY (symbol, period_type, period_date)) PARTITION BY RANGE (period_date);
-- 创建 2020-2025 分区CREATE TABLE esg_ratings_2020_2025 PARTITION OF listed_company_esg_ratings FOR VALUES FROM ('2020-01-01') TO ('2026-01-01');
-- 建立回测常用复合索引CREATE INDEX idx_esg_industry_period ON listed_company_esg_ratings (industry, period_date, overall_rank DESC);CREATE INDEX idx_esg_symbol_timeline ON listed_company_esg_ratings (symbol, period_date DESC);🛒 订购与获取方式
- 购买咨询:欢迎需要完整数据包的朋友联系拍购,直拍网盘秒发!
- 提供格式:Excel 原始大宽表 + 清洗后 CSV + Stata .dta + SQL 建表与导入脚本,省去数十小时手工整理时间。