第03章 内科检查:缺失与重复 章节摘要:缺失值与重复记录是脏数据的两大基础病,也是数据体检里检出率最高的两项。本章讲清NaN的语义、isna族的探测手段、dropna与fillna的处置策略、插值的适用边界,以及重复记录的三种形态与去重会诊流程。 一条主线 病人经过分诊(第02章)躺上内科检查床。主线任务:我们那份销售明细里,会员积分列有缺失、周六的补录数据把同一笔交易录了两遍。内科医生要回答三个问题:缺在哪里、缺得有没有道理、要不要补以及怎么补;重复也一样——是完全重复还是关键字段重复。这两类病经常伪装成对方:重复行有时是为了"补缺失"而重复录入的产物,处置前要先分型再下医嘱。
章节摘要:缺失值与重复记录是脏数据的两大基础病,也是数据体检里检出率最高的两项。本章讲清NaN的语义、isna族的探测手段、dropna与fillna的处置策略、插值的适用边界,以及重复记录的三种形态与去重会诊流程。
病人经过分诊(第02章)躺上内科检查床。主线任务:我们那份销售明细里,会员积分列有缺失、周六的补录数据把同一笔交易录了两遍。内科医生要回答三个问题:缺在哪里、缺得有没有道理、要不要补以及怎么补;重复也一样——是完全重复还是关键字段重复。这两类病经常伪装成对方:重复行有时是为了"补缺失"而重复录入的产物,处置前要先分型再下医嘱。
isna、info、统计占比三件探测器械,NaN与None的血型差异,dropna与fillna的处置参数,以及什么时候该用插值而不是硬填。
duplicated与drop_duplicates的keep策略,subset按关键列判重,以及"去重后数字变小了"这类结果解读与复核动作。
本章拐点是"缺失的三种语义":真缺失(没发生)、未采集(发生了没记)、不适用(对这行无意义)。三种语义对应三种处置,混为一谈就会出现"给未开户用户填平均存款额"这种荒谬结果。读完本章,你应当能够:
前置是布尔索引(2-2)——缺失探测与复核全靠它。延伸:缺失语义的判断依赖业务知识,类型血型会影响缺失的表现形式(object列的None与数值列的NaN),这条线索通向4-1;聚合函数对NaN的自动跳过行为在5-1会正式确认。做本章练习时建议故意制造各种缺失(空字符串、None、np.nan、NaT),观察它们在dtypes与isna下的不同表现,理解"看起来都是空、血型各不同"背后的机制。这两类基础病的处置留痕习惯,也请从本章开始养成。
内科清完缺失与重复,病人的血样还要送专科:金额列的字符串病(第01章埋的病灶)、离群的极端值、格式五花八门的文本,都归第04章专科门诊管。
内科毕业要过的知识点:用三种口径出缺失化验单;解释NaN不等于自身带来的比较陷阱;按语义给缺失分类并各配一种处置;说明dropna三个旋钮的组合用法;对比fillna、ffill、interpolate的适用边界;区分整行重复与关键字段重复的处置流程;用keep=False做去重前复核;用前后总额对账验证去重结果。这八条覆盖了数据清洗里最高频的两类故障,真实项目里八成的"数字对不上"都能追溯到这里。