数据拼接
方法概述
数据拼接用于将两个数据集(主表与副表)整合为一份完整数据,是数据准备中常用的多文件合并手段。本工具支持两种拼接方式:纵向合并(将副表的行堆叠到主表下方,要求列结构相同)与横向合并(按连接键将两表的列拼接,支持内连接、外连接、左连接、右连接)。适用于多批次数据合并、按关键字段关联多张明细表等场景。工具提供主表、副表与拼接结果的预览,并自动生成含行数、列数的拼接摘要。
本工具提供以下核心能力:
- 支持纵向合并,按行堆叠主表与副表,列名不一致时按并集输出并补充缺失。
- 支持横向合并,提供内连接、外连接、左连接、右连接四种方式。
- 连接键支持多列选择,自动列出两表共同列供选用。
- 提供主表、副表与拼接结果的三重预览,缺失值以灰色标记。
- 自动生成拼接摘要,含拼接方式、连接键及各表行列数。
- 集成 AI 智能分析,评估拼接结果的合理性与完整性。
- 可下载拼接后数据(CSV/Excel)与分析报告(HTML)。
计算步骤
1. 数据加载与预处理
- 双表上传:分别上传主表(左表)与副表(右表)文件,均支持 CSV 和 Excel 格式,各不超过 5MB。
- 缺失值识别:自动将常见缺失符号转换为缺失标记
NA。 - 列类型智能转换:字符型列中超过 80% 的值可转为数值时自动转为数值列。
- 空行/空列清理:删除完全为空的行和列。
2. 选择拼接方式
- 纵向合并(堆叠行):将副表的行追加到主表下方,要求两表列名结构一致;若列名不完全一致,工具给出提示并按并集列输出,缺失单元格填充
NA。 - 横向合并(连接列):选择两表共有的列作为连接键(可多选),并指定连接方式。
3. 纵向合并计算
设主表与副表分别有 \(n_1\)、\(n_2\) 行,列名集合为 \(C_1\)、\(C_2\),则合并后: \[
n = n_1 + n_2, \qquad C = C_1 \cup C_2
\] 某表不含的列在对应行以缺失标记 NA 填充。
4. 横向合并计算
连接键记作 \(\mathbf{k}\)(一个或多个列)。按连接方式不同,结果集合分别为: \[
T_{\text{inner}} = \{(r_m, r_s) \mid r_m.\mathbf{k} = r_s.\mathbf{k}\}
\] \[
T_{\text{left}} = T_{\text{inner}} \;\cup\; \{(r_m, \varnothing) \mid r_m \text{ 在副表无匹配}\}
\] \[
T_{\text{right}} = T_{\text{inner}} \;\cup\; \{(\varnothing, r_s) \mid r_s \text{ 在主表无匹配}\}
\] \[
T_{\text{full}} = T_{\text{left}} \cup T_{\text{right}}
\] 其中 \(r_m\)、\(r_s\) 分别为主表、副表中的行,\(\varnothing\) 表示彼侧无匹配记录,其字段以 NA 填充。
5. 拼接摘要
自动生成拼接方式、连接键(横向)、主表行数、副表行数、合并后行数与列数等摘要信息。小数位数设置控制预览表格中数值的显示精度,不影响底层数据。
6. AI 智能分析
基于拼接方式、主副表行数与合并后的行列数等信息,调用大语言模型分析拼接结果的合理性并给出后续建议。
7. 结果导出
- 下载拼接后的数据(CSV 或 Excel 格式)。
- 下载包含拼接摘要与拼接结果前 10 行预览的 HTML 报告。
案例分析
案例背景:某公司有两份数据:员工基本信息表(含员工ID、姓名、部门)与工资记录表(含员工ID、月薪、绩效分),现需以员工ID为连接键,将工资信息横向关联到员工信息上。
主表:员工信息(示例)
| 员工ID | 姓名 | 部门 |
|---|---|---|
| 101 | 张三 | 研发部 |
| 102 | 李四 | 市场部 |
| 103 | 王五 | 研发部 |
| 104 | 赵六 | 财务部 |
副表:工资记录(示例)
| 员工ID | 月薪(元) | 绩效分 |
|---|---|---|
| 101 | 12000 | 88 |
| 102 | 11000 | 92 |
| 103 | 9500 | 76 |
| 105 | 10000 | 81 |
处理过程:
- 数据加载:上传主表与副表。
- 选择合并方式:横向合并(连接列)。
- 连接键:员工ID。
- 连接方式:选择内连接(仅保留两表键匹配的行)。
拼接结果(内连接,示例):
| 员工ID | 姓名 | 部门 | 月薪(元) | 绩效分 |
|---|---|---|---|---|
| 101 | 张三 | 研发部 | 12000 | 88 |
| 102 | 李四 | 市场部 | 11000 | 92 |
| 103 | 王五 | 研发部 | 9500 | 76 |
结论:在本示例数据范围内,内连接保留了员工ID在两张表中都存在的员工(101、102、103),员工 104 与员工 105 因仅出现在一侧而未保留;若改用左连接则可保留全部员工信息,并在工资列填充 NA。
常见问题
Q1: 纵向合并与横向合并如何区分?
A: 纵向合并是把行累积起来增加记录数(要求列结构一致);横向合并是把列拼接起来扩展字段(需要连接键把两表的对应关系联系起来)。
Q2: 内连接、外连接、左连接、右连接分别何时用?
A: 内连接只保留两表都匹配的记录,信息最紧凑;左连接保留主表全部行(副表无匹配填 NA);右连接保留副表全部行;外连接保留两表全部行。通常以业务关心的表为主体选择左/右连接。
Q3: 纵向合并时两表列名不一致怎么办?
A: 工具会对齐列名,并集外的列以 NA 填充,同时给出提示。建议先核对列名,保持结构相同可获得更规整的结果。
Q4: 连接键支持多列吗?
A: 支持。当单一字段无法唯一定位记录时,可选择多个共同列作为连接键,按这些列的组合值进行匹配。
Q5: 为什么有些行出现 NA?
A: 横向连接时一侧无匹配记录会填充 NA;纵向合并时某表缺失的列也会填充 NA。应结合连接方式判断 NA 是否合理。
平台功能
- 数据输入:主表与副表分别上传,支持 CSV、Excel 格式(各不超过 5MB),自动识别缺失值与数值列。
- 纵向合并:按行堆叠主表与副表,列名不一致时按并集输出并补充 NA。
- 横向合并:支持内连接、外连接、左连接、右连接,连接键支持多列选择(自动列出两表共同列)。
- 结果展示:
- 主表、副表与拼接结果三重预览,缺失值以灰色背景标记。
- 拼接摘要(拼接方式、连接键、各表行列数)。
- AI 智能分析:评估拼接结果合理性并提供后续分析建议(每日限 3 次,需配置 API 密钥)。
- 报告下载:支持下载拼接后数据(CSV/Excel)及含摘要与预览的 HTML 报告。
使用建议
- 检查连接键:执行前确认连接键在两表中取值方式一致(如统一格式的编号),避免意外匹配失败。
- 选择主体表:以需要完整保留的数据作为主表,选择左连接,其余表的匹配信息自然拼接。
- 核对行数预期:内连接结果行数不会超过主表;若结果行数接近两表行数之和,可能存在重复键,需检查数据。
- 纵向合并前对齐列:先对比两表列名,调整列顺序与名称以保持结构一致。
- 预览验证:通过拼接结果预览核对关键记录是否正确关联,必要时切换连接方式对比。
- AI 分析辅助:配置 API 密钥后,可用 AI 分析评估数据关联的完整性与潜在问题。
平台界面

平台界面包含:主表/副表上传区、拼接方式选择区(纵向/横向)、连接键与连接方式设置区、主表/副表/拼接结果三重预览、拼接摘要、AI 分析模块与结果下载区
参考文献
- Codd, E. F. (1970). A Relational Model of Data for Large Shared Data Banks. Communications of the ACM, 13(6), 377-387.
- Hernández, M. A., & Stolfo, S. J. (1998). Real-world Data is Dirty: Data Cleansing and the Merge/Purge Problem. Data Mining and Knowledge Discovery, 2(1), 9-37.