中文姓氏开放数据集
把站内 109 个姓氏页里的结构化信息抽出来,做成一份可以直接拿来用的数据:每个姓的普通话读音、得姓时代、得姓始祖、发源地、主要郡望、堂号、全国人口排名与当代人口估算、史籍所见名人,以及一段得姓源流说明。提供 JSON 与 CSV 两种格式,CC BY 4.0 授权,商用、教学、做工具、喂给模型都行。
做这份数据的起因很直接:想找一个带拼音、带郡望、带源流说明的中文姓氏表,找了一圈,要么只有「赵钱孙李」的顺序没有解释,要么是残缺的爬虫结果,要么授权不明。索性自己整理一份,顺手放出来。
一、字段说明
每条记录 16 个字段,字段名用英文、内容用中文,方便程序处理也方便人读。数组类字段(郡望、堂号、名人)在 CSV 里以竖线 | 分隔。rank 是给人看的展示串,rank_num 才是排序用的整数;要按人口排队直接用后者,不要去正则解析前者。
| 字段 | 含义 | 说明 |
|---|---|---|
| surname | 汉字姓氏 | 单字或复姓,如「李」「欧阳」 |
| pinyin | 普通话读音 | 带声调符号,如 lǐ |
| era | 得姓时代 | 该姓主体形成的朝代,如 商末 / 西周 / 春秋 |
| ancestor | 得姓始祖 | 史籍所载受姓之祖,异说并存时并列 |
| origin | 发源地 | 今地名,便于对应现代行政区 |
| junwang | 主要郡望 | 数组,魏晋至唐衡量门第的坐标 |
| tanghao | 堂号 | 数组,含名称与由来 |
| rank | 全国人口排名 | 按 2020 年公安部户政管理研究中心全国姓名报告,该表只排前 100 名、不列人数;无排名则为空 |
| rank_num | 排名的数字版 | 整数,如 2;无排名为 null。排序、做图用这个,不要自己解析 rank |
| population | 当代人口 | 展示串,如「约 1.05 亿人」;无统计时为「人数稀少」或空。与 rank 不同源,见 population_source |
| population_est | 人口估算的整数版 | 单位:人,如 101000000;「人数稀少」与空值均为 null,不补 0 |
| population_source | 人口数字的来源口径 | mps2020=2020 年公安部报告原文数字(仅复姓);estimate=其他统计或估算,年份不一;qualitative=只有「人数稀少」定性描述;空=无数据 |
| notables | 史籍所见名人 | 数组,用于感受该姓在真实语境中的语感 |
| origin_note | 得姓源流 | 一段说明,交代姓氏来源与主要支系 |
| url | 详情页 | 该姓在站内的完整起名指南 |
当前版本 v2.1(2026-11-15):新增 population_source 标注人口数字的来源口径;此前 v2.0(2026-11-15)新增 rank_num 与 population_est,v1.0(2026-11-13)为首版。字段只增不改,旧读法继续可用。
二、覆盖范围与已知缺口
这 109 个姓不是按人口取的前 109 名,而是按站内已经写完详情页的姓收录的,所以既有李、王、张、刘这类大姓,也有百里、单于、淳于这类罕见复姓。读数据前请先看清三个缺口:
- 30 个姓有全国排名,12 个复姓有人口数字,两者来源不同。2020 年公安部户政管理研究中心的全国姓名报告,「百家姓」表只排前 100 名、表内不列各姓人数;该报告另在「常见复姓」一节给出了 12 个复姓的具体人数(欧阳 111.2 万、诸葛 4.8 万、令狐 5.5 万等),这部分可以逐字核对。30 个有排名的单姓,其人口数字(
population_source = estimate)来自其他统计或估算、年份不一,该报告本身没有给出,引用时请注明。字段population_source就是用来区分这几种口径的:mps2020 / estimate / qualitative / 空。 - 不要用人口数代替排名。正因为两列不同源,按
population_est排序会出现 5 处相邻倒挂:林(第 18 位,约 1420 万人)高于 何(第 17 位,约 1300 万人);高(第 20 位,约 1450 万人)高于 罗(第 19 位,约 1400 万人);宋(第 24 位,约 1120 万人)高于 谢(第 23 位,约 1050 万人);韩(第 27 位,约 980 万人)高于 许(第 26 位,约 900 万人);冯(第 29 位,约 950 万人)高于 邓(第 28 位,约 920 万人)。要按人口规模排序请用rank_num,population_est只适合看量级、不适合定序。 - 其余 67 个姓没有人口数字:其中 18 个在姓氏页标为「人数稀少」,49 个完全没有公开统计。这些记录的
rank、rank_num、population_est一律为空——「人数稀少」只以文字形式留在population里,没有折算成数字。拿到空值请当作「未知」,不要当成 0。 - 郡望与堂号是文献归纳,不是普查结果。郡望依据《新唐书·宰相世系表》《元和姓纂》等姓氏书,堂号取自各族族谱与祠堂记载。不同支系堂号不同,这里的「主要郡望」只列该姓最常被引用的几个,不等于全部。
- 得姓源流多源并存是常态。一个大姓往往同时有姬姓、子姓、妫姓、赐姓、改姓等多条来源,
origin_note会并列写出,不强行归一。遇到「始祖」写两个人的情况(如「白公胜、公子白」),正是异说并存,不是笔误。
三、常见问题
这 109 个姓是按人口选的,还是按什么选的?
都不是按人口选的。收录范围是站内已经写完详情页的 109 个姓,所以既有李、王、张、刘这类大姓,也有万俟、尉迟、长孙这类罕见复姓——79 个单字姓、30 个复姓。想要「人口前 109 名」的名单,这份数据不是,也不打算是:那种榜单网上已经很多,缺的是带源流解释的那种。
能商用吗?要怎么署名?
能。CC BY 4.0 允许复制、修改、商用和再分发,唯一要求是署名并附许可链接。写在 README 里一行就够:姓氏数据来自 中文起名网 https://naming-cn.pages.dev/opendata(CC BY 4.0)。
为什么只有 30 个姓有全国排名?
因为官方只发布这么多。2020 年公安部户政管理研究中心的全国姓名报告,「百家姓」表只排前 100 名、表内不列人数,第 101 位之后没有公开统计。另有 12 个复姓(欧阳、诸葛一类)该报告在「常见复姓」一节单列了人数,但排不进前 100,于是有人口数字、没有排名;剩下 67 个姓没有任何数字。这些字段一律为 null,不插值、不补 0。
为什么按人口排序会出现排名倒挂?
因为这两列不同源。排名来自 2020 年报告,30 个单姓的人口数字来自其他年份的统计与估算,放在一起排序会出现 5 处相邻倒挂:林(第 18 位,约 1420 万人)高于 何(第 17 位,约 1300 万人);高(第 20 位,约 1450 万人)高于 罗(第 19 位,约 1400 万人);宋(第 24 位,约 1120 万人)高于 谢(第 23 位,约 1050 万人);韩(第 27 位,约 980 万人)高于 许(第 26 位,约 900 万人);冯(第 29 位,约 950 万人)高于 邓(第 28 位,约 920 万人)。这不是排版错误,而是数据源的年代差异,已用 population_source 字段标出。要排序请用 rank_num,population_est 只适合看量级。
既然有 rank_num 了,为什么还留着 rank?
rank 是姓氏详情页上显示的那串中文(「全国第 2 位」),留着是为了让数据和读者在页面上看到的一致;rank_num 才是给代码排序用的整数。两个都留,比要求每个使用者自己去正则解析中文数字便宜得多。
前端能直接 fetch 吗?需要 key 或注册吗?
都不需要。JSON 与 CSV 都带 Access-Control-Allow-Origin: *,浏览器里直接 fetch 即可,无 key、无注册、无代理、无限流。
「人数稀少」为什么不按 0 处理?
因为它不是 0。「人数稀少」表示该姓确有传承、但人口少到没有公开统计,属于「已知很少、数值未知」,当前有 18 条这样记录。折成 0 会让求和、均值、排序全部失真,所以 population_est 保持 null,只在 population 里保留这段原话,让人知道「为什么没有数字」。
能用于学术引用吗?准确性怎么保证?
全国排名与 12 个复姓的人数引自公安部 2020 年全国姓名报告,可逐字核对;30 个单姓的人口数字来自其他统计与估算、年份不一,已用 population_source 标注,引用请注明口径。郡望依据《新唐书·宰相世系表》《元和姓纂》等姓氏书,堂号取自各族族谱与祠堂记载。姓氏源流本身多源并存,数据并列保留异说、不做裁决,所以「始祖」列两个人不是笔误。用于学术研究请回到原始文献核对;发现错漏欢迎在留言板指出,核实后发布新的版本号。
四、下载
两个文件内容等价,按用途选一个。JSON 保留了数组结构,CSV 拍平了,后者用 Excel 直接打开不会乱码(UTF-8 带 BOM)。
两个文件都允许跨域读取(Access-Control-Allow-Origin: *),前端可以直接 fetch,不需要自建代理:
const rows = await fetch('https://naming-cn.pages.dev/data/surnames.json').then(r => r.json());
// 按全国人口排名排序(用 rank_num,不用 rank)
rows.filter(r => r.rank_num).sort((a, b) => a.rank_num - b.rank_num);
// 查一个姓:rows.find(r => r.surname === '李')
// 是否有人口数字:r.population_est !== null
五、许可与引用
数据以 CC BY 4.0 授权:可以复制、修改、商用、再分发,唯一要求是署名并注明许可。建议这样引用——
中文起名网(2026).《中文姓氏开放数据集》.
https://naming-cn.pages.dev/opendata(CC BY 4.0)
如果是用在程序里,README 或关于页写一行就够:姓氏数据来自 中文起名网 https://naming-cn.pages.dev/opendata(CC BY 4.0)。
六、109 条记录预览
下表就是数据集本身,可以直接在页面上筛。输入汉字、拼音或朝代都能匹配。
共 109 条
| 姓氏 | 读音 | 得姓时代 | 发源地 | 人口排名 | 当代人口 |
|---|---|---|---|---|---|
| 白 | bái | 春秋 | 河南息县 | — | — |
| 蔡 | cài | 西周 | 河南上蔡 | — | — |
| 曹 | cáo | 西周 | 山东定陶 | 全国第 30 位 | 约 790 万人 |
| 单于 | chán yú | 汉代 | 内蒙古 | — | 人数稀少 |
| 陈 | chén | 西周 | 河南淮阳 | 全国第 5 位 | 约 6300 万人 |
| 程 | chéng | 西周 | 河南洛阳 | — | — |
| 淳于 | chún yú | 西周 | 山东安丘 | — | 人数稀少 |
| 崔 | cuī | 西周 | 山东章丘 | — | — |
| 戴 | dài | 西周 | 河南商丘 | — | — |
| 邓 | dèng | 商代 | 河南邓州 | 全国第 28 位 | 约 920 万人 |
| 丁 | dīng | 西周 | 山东淄博 | — | — |
| 董 | dǒng | 上古 | 山西闻喜 | — | — |
| 东方 | dōng fāng | 西汉 | 山东 | — | 人数稀少 |
| 杜 | dù | 西周 | 陕西西安 | — | — |
| 端木 | duān mù | 春秋 | 河南浚县 | — | 人数稀少 |
| 独孤 | dú gū | 北魏 | 山西大同 | — | 人数稀少 |
| 范 | fàn | 春秋 | 河南范县 | — | — |
| 方 | fāng | 上古 | 河南洛阳 | — | — |
| 冯 | féng | 西周 | 陕西兴平 | 全国第 29 位 | 约 950 万人 |
| 傅 | fù | 商代 | 山西平陆 | — | — |
| 高 | gāo | 春秋 | 山东长清 | 全国第 20 位 | 约 1450 万人 |
| 公孙 | gōng sūn | 春秋 | 河南 | — | 人数稀少 |
| 公西 | gōng xī | 春秋 | 山东 | — | 人数稀少 |
| 郭 | guō | 西周 | 河南荥阳 | 全国第 16 位 | 约 1580 万人 |
| 韩 | hán | 战国 | 陕西韩城 | 全国第 27 位 | 约 980 万人 |
| 郝 | hǎo | 商代 | 山西太原 | — | — |
| 何 | hé | 战国末 | 安徽庐江 | 全国第 17 位 | 约 1300 万人 |
| 赫连 | hè lián | 十六国 | 陕西靖边 | — | 人数稀少 |
| 胡 | hú | 西周 | 河南淮阳 | 全国第 15 位 | 约 1650 万人 |
| 黄 | huáng | 夏商 | 河南潢川 | 全国第 7 位 | 约 3300 万人 |
| 皇甫 | huáng fǔ | 西周 | 河南民权 | — | 约 6.4 万人 |
| 贾 | jiǎ | 西周 | 山西襄汾 | — | — |
| 江 | jiāng | 西周 | 河南正阳 | — | — |
| 姜 | jiāng | 上古 | 陕西宝鸡 | — | — |
| 蒋 | jiǎng | 西周 | 河南固始 | — | — |
| 金 | jīn | 上古 | 山东曲阜 | — | — |
| 康 | kāng | 西周 | 河南禹州 | — | — |
| 孔 | kǒng | 春秋 | 河南商丘 | — | — |
| 李 | lǐ | 商末 | 河南鹿邑 | 全国第 2 位 | 约 1.01 亿人 |
| 梁 | liáng | 西周 | 陕西韩城 | 全国第 22 位 | 约 1130 万人 |
| 廖 | liào | 商周 | 河南唐河 | — | — |
| 林 | lín | 商末 | 河南卫辉 | 全国第 18 位 | 约 1420 万人 |
| 令狐 | líng hú | 春秋 | 山西临猗 | — | 约 5.5 万人 |
| 刘 | liú | 夏代 | 河南偃师 | 全国第 4 位 | 约 7200 万人 |
| 卢 | lú | 春秋 | 山东长清 | — | — |
| 陆 | lù | 战国 | 山东乐陵 | — | — |
| 罗 | luó | 商周 | 湖北宜城 | 全国第 19 位 | 约 1400 万人 |
| 吕 | lǚ | 上古 | 河南南阳 | — | — |
| 马 | mǎ | 战国 | 河北邯郸 | 全国第 13 位 | 约 1910 万人 |
| 毛 | máo | 西周 | 陕西岐山 | — | — |
| 万俟 | mò qí | 北魏 | 山西 | — | 人数稀少 |
| 慕容 | mù róng | 三国 | 辽宁义县 | — | 约 0.5 万人 |
| 南宫 | nán gōng | 春秋 | 河南 | — | 人数稀少 |
| 欧阳 | ōu yáng | 战国 | 浙江湖州 | — | 111.2 万人 |
| 潘 | pān | 西周 | 河南荥阳 | — | — |
| 彭 | péng | 上古 | 江苏徐州 | — | — |
| 濮阳 | pú yáng | 春秋 | 河南濮阳 | — | 人数稀少 |
| 秦 | qín | 西周 | 甘肃天水 | — | — |
| 邱 | qiū | 西周 | 山东淄博 | — | — |
| 任 | rén | 上古 | 山东济宁 | — | — |
| 上官 | shàng guān | 战国 | 河南滑县 | — | 约 8.8 万人 |
| 沈 | shěn | 西周 | 河南平舆 | — | — |
| 申屠 | shēn tú | 西周 | 陕西 | — | 约 1.9 万人 |
| 石 | shí | 春秋 | 河南淇县 | — | — |
| 史 | shǐ | 西周 | 陕西 | — | — |
| 司马 | sī mǎ | 西周 | 河南武陟 | — | 约 2.3 万人 |
| 宋 | sòng | 西周 | 河南商丘 | 全国第 24 位 | 约 1120 万人 |
| 苏 | sū | 商代 | 河南温县 | — | — |
| 孙 | sūn | 春秋 | 山东惠民 | 全国第 12 位 | 约 1940 万人 |
| 太史 | tài shǐ | 西周 | 山东 | — | 人数稀少 |
| 谭 | tán | 西周 | 山东章丘 | — | — |
| 唐 | táng | 西周 | 山西翼城 | 全国第 25 位 | 约 1010 万人 |
| 澹台 | tán tái | 春秋 | 山东 | — | 人数稀少 |
| 田 | tián | 春秋 | 山东淄博 | — | — |
| 拓跋 | tuò bá | 北魏 | 内蒙古 | — | 人数稀少 |
| 汪 | wāng | 春秋 | 山东 | — | — |
| 王 | wáng | 春秋 | 河南洛阳 | 全国第 1 位 | 约 1.05 亿人 |
| 完颜 | wán yán | 辽金 | 黑龙江 | — | 约 0.6 万人 |
| 魏 | wèi | 战国 | 山西芮城 | — | — |
| 闻人 | wén rén | 春秋 | 山东 | — | 人数稀少 |
| 吴 | wú | 商末 | 江苏无锡 | 全国第 9 位 | 约 2780 万人 |
| 夏 | xià | 夏代 | 河南禹州 | — | — |
| 夏侯 | xià hóu | 西周 | 山东 | — | 约 1.1 万人 |
| 萧 | xiāo | 春秋 | 安徽萧县 | — | — |
| 谢 | xiè | 西周 | 河南南阳 | 全国第 23 位 | 约 1050 万人 |
| 熊 | xióng | 商末 | 湖北秭归 | — | — |
| 徐 | xú | 夏代 | 江苏泗洪 | 全国第 11 位 | 约 2020 万人 |
| 许 | xǔ | 西周 | 河南许昌 | 全国第 26 位 | 约 900 万人 |
| 轩辕 | xuān yuán | 上古 | 河南新郑 | — | 人数稀少 |
| 薛 | xuē | 夏代 | 山东滕州 | — | — |
| 阎 | yán | 西周 | 山西运城 | — | — |
| 杨 | yáng | 西周 | 山西洪洞 | 全国第 6 位 | 约 4600 万人 |
| 姚 | yáo | 上古 | 山东菏泽 | — | — |
| 于 | yú | 西周 | 河南沁阳 | — | — |
| 余 | yú | 春秋 | 陕西凤翔 | — | — |
| 袁 | yuán | 春秋 | 河南淮阳 | — | — |
| 尉迟 | yù chí | 北魏 | 山西大同 | — | 约 0.4 万人 |
| 宇文 | yǔ wén | 北魏 | 内蒙古 | — | 人数稀少 |
| 曾 | zēng | 夏代 | 山东苍山 | — | — |
| 张 | zhāng | 上古 | 河北清河 | 全国第 3 位 | 约 8500 万人 |
| 长孙 | zhǎng sūn | 北魏 | 山西大同 | — | 约 0.3 万人 |
| 赵 | zhào | 西周 | 山西洪洞 | 全国第 8 位 | 约 2860 万人 |
| 郑 | zhèng | 西周 | 陕西华县 | 全国第 21 位 | 约 1240 万人 |
| 钟 | zhōng | 春秋 | 安徽凤阳 | — | — |
| 周 | zhōu | 西周 | 河南汝南 | 全国第 10 位 | 约 2680 万人 |
| 朱 | zhū | 西周 | 山东邹城 | 全国第 14 位 | 约 1810 万人 |
| 诸葛 | zhū gě | 西汉 | 山东沂南 | — | 约 4.8 万人 |
| 宗政 | zōng zhèng | 汉代 | 陕西 | — | 人数稀少 |
| 邹 | zōu | 战国 | 山东邹城 | — | — |
数据来自本站 109 个姓氏详情页的整理。全国排名与复姓人数引自 2020 年公安部户政管理研究中心全国姓名报告;单姓人口数字来自其他统计与估算、年份不一,已在 population_source 字段中标注,请勿当作官方数字引用。郡望堂号引自《新唐书·宰相世系表》《元和姓纂》等姓氏书与各族族谱。姓氏源流存在异说,本数据集并列保留、不做裁决,如需用于学术研究请核对原始文献。发现错漏欢迎在留言板指出,核实后会更新版本。