JMP系列-数据清洗实战(一)
1. 数据清洗入门为什么JMP是首选工具第一次接触数据分析的朋友常常会被数据清洗这个词吓到。其实说白了就是把乱七八糟的数据整理干净的过程。想象一下你刚搬完家房间里堆满未拆封的纸箱——数据清洗就是帮你把这些箱子拆开把物品分类放好的过程。JMP在这方面的优势特别明显。它的可视化界面让操作变得直观不像写代码那样需要记忆复杂的语法。我刚开始用Excel处理数据时经常被各种公式搞得头晕眼花直到发现JMP的交互式操作效率直接翻倍。最让我惊喜的是它的实时预览功能任何修改都能立即看到效果避免了很多返工。常见的数据脏乱问题主要有三类缺失值该填的地方空着、异常值明显不合理的数据、格式混乱比如日期写成2023年1月1日和01/01/23混在一起。上周处理销售数据时就遇到个典型案例同一产品的价格有的带美元符号有的没带还有的把999输成了99o这种问题不解决后续分析全都会出错。2. 查找替换数据清洗的瑞士军刀2.1 基础查找替换技巧CtrlF这个组合键在JMP里比在Word里强大十倍。最近处理客户反馈数据时发现满意度列里混着满意、非常满意、satisified等十几种写法用查找替换20分钟就统一成了5个标准等级。几个实用技巧区分大小写处理英文数据时特别有用比如要把Apple改成苹果但保留apple指水果全字匹配避免把car替换成汽车时误改cartoon这样的词列范围限定只在指定列操作防止误改其他列数据上周帮同事处理实验数据时就栽过跟头没限定列范围把整个表格里的NA都替换成了0结果把试剂批号里的NA-2023也改掉了差点导致重大错误。切记操作前先确认选区2.2 重新编码的高级玩法重新编码功能就像给数据做批量美颜。处理调查问卷时经常遇到这种情况1-5分制的选项有人填优秀/良好/一般有人填A/B/C还有人直接写分数。用重新编码可以一键统一成数字格式。进阶技巧条件编码比如把大于3σ的值统一标记为异常公式集成在编码时嵌入简单计算比如把华氏度转成摄氏度保留原数据建议先新建列操作验证无误后再删除原列有个容易忽略的细节重新编码对话框右下角的其他值选项。如果不设置系统会自动把未列出的值转为缺失值我就曾因此莫名其妙丢失了30%的数据。现在养成了习惯总会加上其他值→保持原样的设置。3. 数据类型处理的正确姿势3.1 批量修改数据类型数据类型错误是分析结果出问题的常见原因。上个月分析年度报表时发现销售额同比计算异常查了2小时才发现有列数字被存成了文本格式。JMP提供了两种解决方案方法一右键批量修改按住Ctrl多选需要修改的列右键→列信息在数据类型下拉菜单调整特别注意建模类型名义/有序/连续的设置方法二标准化特性这个藏在列菜单下的功能堪称神器可以一次性修改数据类型数值/字符/日期等格式小数位数、日期格式等建模类型决定后续分析方法的适用性最近处理气象数据时就靠它50多个监测点的数据有的温度带小数有的只有整数用标准化特性统一保留两位小数后续计算再没出过错。3.2 日期时间处理的坑与技巧日期格式混乱绝对能进数据清洗噩梦排行榜前三。去年处理跨国销售数据时遇到过美式MM/DD/YYYY、欧式DD/MM/YYYY、ISO格式YYYY-MM-DD混在一起的情况差点导致季度报告全部重做。JMP的日期处理技巧先用列信息确认当前识别格式使用数值格式→日期中的预设格式自定义格式时注意区分m代表月份1-12mm会补零01-12mmm显示英文缩写Jan-Dec有个实用技巧遇到无法自动识别的日期可以先在Excel中用DATEVALUE函数转换再导入JMP。曾经有个项目遇到2023年三月15日这种格式JMP直接报错用这个方法10分钟就搞定了。4. 数据重构行列转换实战4.1 智能列拼接技巧需要合并多列数据时90%的人第一反应是用公式。但其实JMP的组合列功能更简单高效。上周做客户画像分析时需要把省、市、区三级地址合并用组合列三步搞定选择要合并的列设置分隔符我用的是空格指定新列名更复杂的情况可以用公式比如需要条件拼接Concat( If(:年龄18, 青少年_, ), If(:性别男, M_, F_), :城市 )这个公式会把18岁以下的青少年标记出来并加上性别前缀我在做教育产品分析时经常用这种组合。4.2 行转列的三种场景实际分析中经常需要调整数据布局主要有三种情况情况一多行转列名处理传感器数据时经常遇到第一列是时间戳后面每行是一个传感器的实时读数。用上移和追加功能选中要作为列名的行右键→列名称→上移和追加系统会自动处理重复列名加数字后缀情况二行列转置这个简单在表菜单里直接选转置但要注意转置前最好先复制备份转置后会丢失原列名大表转置可能很耗内存情况三分类展开把一列中的分类值展开成多列类似Excel的数据透视。最近分析产品缺陷类型时就用到了选择表→透视拖拽分类字段到行区域拖拽数值字段到值区域在汇总统计选择合适算法平均/求和等5. 缺失值与异常值处理实战5.1 智能填充缺失值缺失值处理不能简单填0了事。上周分析临床试验数据时发现不同缺失原因需要不同处理设备故障导致的缺失用前后时间点数据线性插补患者未检测的缺失标记为未检测而非数值明显遗漏的缺失联系原始数据提供方确认JMP的缺失值处理路径先通过分析→缺失值分析查看分布对连续变量分布平台→保存→缺失值填充对分类变量用重新编码统一缺失标记复杂情况用公式编辑器写条件替换逻辑有个实用技巧在首选项→平台→分布中可以设置缺失值的显示颜色我习惯设为亮红色一眼就能发现。5.2 异常值检测四步法异常值不一定是错误但必须识别出来单独评估。我的标准流程绘制分布图看整体形态使用异常值筛选交互式标记对标记点右键→行编辑器查看详情根据业务知识判断是否合理最近分析电商数据时发现个典型案例有个订单金额显示为普通订单的1000倍。最初以为是输入错误查原始记录才发现是批发客户的大单。如果直接删除这个异常值就会丢失重要业务信息。进阶技巧用拟合正态叠加在分布图上可以直观看到偏离程度。在保存菜单里选择标准化分数就能用统计方法量化异常程度通常3σ视为异常。