本站长期对外提供专业、规范、已深度清洗的金融量化与经管实证研究数据库

本次整理上架的是**【最新 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 / Int2009-2025 / 2024Q3
证券简称股票中文简称(含当期历史快照)String平安银行, 贵州茅台, 宁德时代
综合评级最终 9 档权威评级EnumAAA, AA, A, BBB, BB, B, CCC, CC, C
综合赋值评级等级数值化映射Integer1 ~ 9(9代表AAA,1代表C)
综合得分综合量化百分制分值Float0.00 ~ 100.00
E评级 / E得分环境支柱(Environmental)评级与得分Enum / FloatAAA~C / 0.00 ~ 100.00
S评级 / S得分社会支柱(Social)评级与得分Enum / FloatAAA~C / 0.00 ~ 100.00
G评级 / G得分公司治理(Governance)评级与得分Enum / FloatAAA~C / 0.00 ~ 100.00
行业证监会行业分类门类与大类String制造业, 金融业, 信息技术服务业

二、附赠数据清洗与特征工程处理脚本

购买数据包后,我们附赠基于 Python polars / pandas 的标准化数据清洗脚本,帮助您快速完成前导零补齐、交易所代码推断、分歧度计算与格式校验:

import polars as pl
from 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 建表与导入脚本,省去数十小时手工整理时间。