第06章 病史归并:合并与重塑


文档摘要

第06章 病史归并:合并与重塑 章节摘要:现实病史散在多张表——订单表、会员表、门店表。merge按键横向配对,concat纵向叠加,merge的四种连接方式决定"对不上的行怎么办",stack与unstack在长宽形态间调床位。归并质量完全取决于键的干净程度(第04章的馈赠)。 一条主线 会诊报告(第05章)只用到了订单表自己的字段。现在新需求来了:报告里要带会员等级和门店城市——这些分别住在会员表和门店表里。主线任务是把三张表归并成一张宽表,途中处理两个经典冲突:会员表里有从没下过单的会员(要不要出现在报告里)、订单表里有会员表查无此人的交易(脏键还是流失会员)。这两个问题没有标准答案,只有口径——而口径就是merge的how参数。

第06章 病史归并:合并与重塑

章节摘要:现实病史散在多张表——订单表、会员表、门店表。merge按键横向配对,concat纵向叠加,merge的四种连接方式决定"对不上的行怎么办",stack与unstack在长宽形态间调床位。归并质量完全取决于键的干净程度(第04章的馈赠)。

一条主线

会诊报告(第05章)只用到了订单表自己的字段。现在新需求来了:报告里要带会员等级和门店城市——这些分别住在会员表和门店表里。主线任务是把三张表归并成一张宽表,途中处理两个经典冲突:会员表里有从没下过单的会员(要不要出现在报告里)、订单表里有会员表查无此人的交易(脏键还是流失会员)。这两个问题没有标准答案,只有口径——而口径就是merge的how参数。

沿途站点

6-1 merge的交叉配对

单键多键连接、how四种方式的行取舍、validate与indicator两道安全带,以及多对一与多对多的膨胀风险。

6-2 concat的病史叠加

按轴堆叠、join参数的对齐策略、ignore_index的重排,以及"append已死,concat当立"的现状。

6-3 stack与unstack的床位调整

宽长互换的另一对手:不聚合、纯搬运,层次索引是它的操作台。与第05章的melt对读,看清各自适用面。

拐点与结论

本章拐点是how参数的语义:left、right、inner、outer不是四个技术选项,是四种业务口径——"只看有单的会员"与"盘点全部会员包括沉睡的"是两份不同的报告。读完本章,你应当能够:

  • 按业务口径选择how参数,并用indicator解释每行的来源
  • 用validate在连接前拦截多对多膨胀
  • 用concat完成纵向堆叠与横向拼列,说明join='inner'与'outer'的差异
  • 用stack与unstack完成不带聚合的宽长转换
  • 排查merge后行数暴涨或莫名变少的两类事故

前置与延伸

前置:第04章的键规范化(merge质量的上限)、第02章的索引对齐(concat的axis=1完全按索引走)。延伸:merge的时间场景(按时间段匹配)在时间序列分析里进阶;宽长形态的完整图谱由本章stack与5-3的melt共同构成。练习建议人为制造脏键(加空格、改大小写)观察merge静默丢行,再把4-3的消毒流程接上,跑通一次完整闭环。

下一章的接力

归并出的宽表有了时间字段,下一章给病史装上时间轴:第07章的时间索引、重采样与移动窗口,让随访变成流水线的常态环节。

本章考核知识点清单

归并室的考核点:按业务口径在四种how里做选择并说明理由;用indicator定位脏键与孤立记录;用validate预防多对多膨胀;完成行数对账并解释差额来源;用concat做纵向堆叠与横向拼列并处理索引与列差异;说出axis=1按索引对齐的坑;用stack与unstack完成层次索引的宽长互换;说明stack默认丢NaN的行为及fill对策。这八条是所有多表工作的地基,BI工程师每天一半的代码都写在这一章的知识点上。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U