本地千万级政府人口数据分类处理实战:用 AI 工作流零代码、零 SQL 完成人口数据清洗、多表拆分与分类统计
今天分享一个数据拆分的实战案例:业务场景是政府人口数据处理,需要基于原始人口登记数据完成清洗、归一和分类,并按婚姻状态拆分生成不同子表,同时输出对应的分类统计结果。
这里要介绍一种更简单的 AI 工作流方案:
不用写 Python,也不用懂 SQL,直接在本地电脑上完成千万级 XLSX/CSV政府人口数据的清洗、归一、按婚姻状态拆分统计和结果输出。
通过提示词配置好 AI 工作流 ,可以进一步生成统计结果表与可视化大盘,如下图:
统计出的结果表:
工作流涉及的主要内部技术:
- 数据清洗技术:通过 Python 智能体,完成出生日期格式统一、婚姻状态归一化、学历字段标准化、姓名与职业等文本字段去空格,并结合统计时点计算年龄,为后续分类拆分与统计分析提供干净一致的数据基础。
- 数据拆分与统计技术:通过 SQL 智能体,基于清洗后的人口分类宽表,按婚姻状态完成条件拆分,生成已婚、未婚、离异、丧偶等不同子表;同时进一步完成 GROUP BY 分组聚合、COUNT/SUM 汇总、年龄段分布统计、学历占比分析、性别比例计算以及分类结果输出。
- 本地存储技术:通过 DuckDB + 本地磁盘,支持政府人口相关 XLSX/CSV 数据在本地完成千万级数据导入、清洗、拆分与统计分析。
- 可视化技术:通过 AI + HTML + ECharts 图表组件,自动生成人口分类分布、年龄结构、学历占比和分类统计趋势等分析图表。
通过对这些复杂技术的包装,即使没有 Python 和 SQL 基础,也可以完成政府人口数据场景下千万级数据的清洗、分类拆分与统计分析。接下来我们就来看下这个案例吧!
本案例一个特色功能就是表格拆分。比如只需要描述:
按"婚姻状态"拆分,分别生成"已婚人口表""未婚人口表""离异人口表""丧偶人口表"就会将输入文件表格按照描述进行拆分成多个子表格文件,拆分结果内容如图:
一、案例要完成的任务提示词
这个提示词就是案例需要完成的任务,直接用于配置到工作流智能体里面。
需要说明一点:提示词不一定非要写成固定模板 。只要表达得 清晰 、 明确 、 简洁 ,让人一眼能看懂要做什么、按什么顺序做、最后输出什么结果,就可以了。
本次案例整理出的提示词如下:
整体要求:将常住人口登记表清洗后,按婚姻状态拆分为多张独立子表,形成可直接使用的人口分类数据包: 第一步 - 清洗人口登记表: 1. "出生日期"统一为 yyyy-MM-dd 格式 2. "婚姻状态"归一化:"已婚""有配偶""married"统一为"已婚","未婚""single"统一为"未婚","离婚""离异"统一为"离异","丧偶""widowed"统一为"丧偶" 3. "学历"归一化:"大学本科""本科"统一为"本科" 4. 姓名、学历、职业、婚姻状态去除前后空格 5. 按统计时点计算"年龄" 第二步 - 生成人口分类宽表: 1. 基于清洗后的常住人口登记表 2. 保留全部原始字段 3. 新增"年龄" 第三步 - 按婚姻状态拆分子表: 1. 基于"人口分类宽表"按"婚姻状态"拆分 2. 分别生成"已婚人口表""未婚人口表""离异人口表""丧偶人口表" 3. 每张子表只保留对应婚姻状态的人口记录,并保留全部字段 第四步 - 生成已婚人口统计表: 1. 基于第三步拆分后的"已婚人口表" 2. 统计:人口数、男女比例、平均年龄、各学历人数占比、各年龄段人数占比 3. 输出"已婚人口统计表" 第五步 - 生成未婚人口统计表: 1. 基于第三步拆分后的"未婚人口表" 2. 统计:人口数、男女比例、平均年龄、各学历人数占比、各年龄段人数占比 3. 输出"未婚人口统计表" 第六步 - 生成离异人口统计表: 1. 基于第三步拆分后的"离异人口表" 2. 统计:人口数、男女比例、平均年龄、各学历人数占比、各年龄段人数占比 3. 输出"离异人口统计表" 第七步 - 生成丧偶人口统计表: 1. 基于第三步拆分后的"丧偶人口表" 2. 统计:人口数、男女比例、平均年龄、各学历人数占比、各年龄段人数占比 3. 输出"丧偶人口统计表"二、案例需求分析
本案例聚焦政府人口数据的分类拆分与统计分析。由于原始人口登记数据中,出生日期、婚姻状态、学历等字段存在格式不统一、取值不一致等问题,因此需要先完成数据清洗、字段归一和年龄计算,构建统一的人口分类宽表。
在此基础上,再按婚姻状态将数据拆分为不同子表,并进一步完成人口数量、性别比例、年龄结构、学历分布等统计分析,最终输出可直接用于留存、专题分析和业务分发的结果数据。
1、源表数据清洗流程
AI 工作流内置了 Python Agent,通过提示词就能实现任意清洗逻辑。本案例需要清洗的表和具体逻辑如下:
清洗常住人口登记表
- "出生日期"统一为 yyyy-MM-dd 格式
- "婚姻状态"归一化:"已婚""有配偶""married"统一为"已婚","未婚""single"统一为"未婚","离婚""离异"统一为"离异","丧偶""widowed"统一为"丧偶"
- "学历"归一化:"大学本科""本科"统一为"本科"
- "姓名""学历""职业""婚姻状态"去除前后空格
- 按统计时点计算"年龄"
2、最终输出哪些统计结果表
AI 工作流内置了 SqlAgent,会根据你描述的统计提示词自动翻译成 SQL 进行统计。本案例会输出 4 个结果统计表。
- 已婚人口统计表:以已婚人口为统计对象,统计人口数、男女比例、平均年龄、各学历人数占比和各年龄段人数占比,用来分析已婚人群的基本结构特征。
- 未婚人口统计表:以未婚人口为统计对象,统计人口数、男女比例、平均年龄、各学历人数占比和各年龄段人数占比,用来分析未婚人群的基本结构特征。
- 离异人口统计表:以离异人口为统计对象,统计人口数、男女比例、平均年龄、各学历人数占比和各年龄段人数占比,用来分析离异人群的基本结构特征。
- 丧偶人口统计表:以丧偶人口为统计对象,统计人口数、男女比例、平均年龄、各学历人数占比和各年龄段人数占比,用来分析丧偶人群的基本结构特征。
3、业务数据涉及哪些源表
源表是指直接从业务系统沉淀下来的基础数据,它保存的是最原始的人口登记信息,不是最终展示用的统计结果表,而是后续进行数据清洗、字段归一、分类拆分和统计分析的基础输入。
本案例共涉及 1 张核心源表:
- 常住人口登记表:记录登记号、姓名、身份证号、性别、出生日期、户籍地址、现住地址、学历、职业、婚姻状态等信息,是政府人口数据分类拆分与统计分析的核心业务明细来源。后续可基于这张表完成出生日期格式统一、婚姻状态归一化、学历标准化、文本字段去空格和年龄计算等处理,并在此基础上构建人口分类宽表,进一步按婚姻状态拆分生成不同子表,支撑各类人群的结构统计和专题分析。
三、落地实现:工作流配置
工作流是由多个智能体节点组成的,这个案例我们涉及到下面几个智能体:
- 文件助手: 获取磁盘的文件或目录。
- 内容清洗器:专门用来做数据清洗的,只要输入清洗描述就可以对文件数据进行任意整理。
- 表格拆分:通过提示词描述拆分逻辑,对输入文件进行任意拆分成子文件。
- 数据入库:将文件数据转成本地数据库,用于后面作SQL统计。
- 表统计: 对本地数据库表进行SQL统计,不需要写sql,只需要统计的描述就可以了。
- 报表导出: 对数据库表进行导出,支持导出csv,xlsx,HTML(可视化显示) 。
根据这几个智能体还有上面描述的提示词,我们就可以完成工作流的配置了。
1. 配置文件助手
”文件助手“ 可以用来获取磁盘上任意的一个或多个文件。打开DT-Bot工作流, 配置一个 “文件助手”智能体节点,描述原始数据文件位置,如图:
DT-Bot工作流,解决方案获取可以看文章末尾名片。
根据提示词描述,获取到了”常住人口登记表.csv“原始表格,给后面智能体使用。
2. 配置内容清洗
“内容清洗器” 很强大,内部是通过python agent执行引擎处理的, 可以对文件进行任意数据整理,我们直接输入清洗提示词就可以了, 如图:
3. 配置拆分
拆分需要使用 ”表格拆分“智能体,可以通过描述进行任意的逻辑拆分多个子表,如下图配置:
4. 数据入库
接下来就需要SQL统计,但是需要将文件导入到本地数据库引擎,然后形成数据库表,如图配置入库:
无需配置任何提示词, 入库后,就是在本地开启数据库,并且生成了一张表,表名就是前面的文件名, 支持批量文件入库。
5. 表统计
接下来我们需要进行表统计,直接用“表统计”智能体就好了, 也是直接输入提示词描述,工作流内部会生成相关sql进行统计(全程不用你操心),下面是我配置完成的图:
6. 导出报表
表统计后,只生成了结果表到数据库里面,还需要从数据库里面下载出来,这是要用“报表导出”智能体,可以指定哪些表,下载类型(支持CSV+HTML),如下图:
配置完成后,我们发布工作流执行就可以了。
四、结尾语
这个案例的价值,不只是产出了多张人口分类结果表,更重要的是把原始人口登记数据整理成了更标准、更适合分类统计和专题分析的数据结构。通过清洗、归一、拆分和统计输出,整个处理链路更清晰,也更贴近政府人口数据管理的实际业务场景。按照 AI 工作流配置好处理要求后,不需要手写 Python 和 SQL,也可以把原始人口数据快速整理成可直接用于分析、留存和分发的结果表。
