跳至主要内容

[信息图] 数据清洗清单

数据清洗占据了数据科学工作流程的 80%。使用此清单来识别并解决数据中的任何质量问题
DataCamp Team
DataCamp Team

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续继续即表示您接受我们的 使用条款,我们的 隐私政策 ,并且您的数据存储在美国。

数据清洗占据了数据科学工作流程的 80%。因此我们制作了这份清单,帮助您识别并解决数据中的任何质量问题。若想进一步学习数据清洗,请分别查看我们的课程:使用 Python 清洗数据 和 R。 

data cleaning checklist

要下载此信息图,请点击上方图片

数据约束问题

1. 数据类型约束

  • 是什么: 在开始分析之前,确保不同列具有正确的数据类型。 
  • 示例: revenue_usd 列为字符串而非数值类型。
  • 可能的解决方案: 转换为正确的数据类型

2. 数据范围约束

  • 是什么: 确保不同列位于正确的取值范围内。对于有上下限的列尤为重要。
  • 示例: gpa 列应限制在 [0.0, 4.0]
  • 可能的解决方案:
    • 检查拼写或录入错误,例如小数点位置不正确。
    • 删除违反范围约束的数据行
    • 将违反范围约束的数据点设为最大值或最小值
    • 将违反范围约束的数据点设为缺失值并进行插补

3. 唯一性约束

  • 是什么: 确保数据行中没有完全或几乎完全重复的记录。 
  • 示例: 一行重复记录中,name 与 phone_number 列相同,但 height_cm 列不同
  • 可能的解决方案:
    • 仅保留一行完全重复的记录
    • 合并存在非完全重复的记录行 

文本与分类型数据问题

1. 分类型数据的成员约束

  • 是什么: 确保分类列的类别正确且一致
  • 示例: city 列中“New York”存在两个不同的录入方式
  • 可能的解决方案:
    • 删除受类别不一致影响的行
    • 将不一致的类别重新映射为正确的类别名称
    • 若无法直接判断如何映射,可基于其他数据点推断类别

2. 文本数据的长度违规

  • 是什么: 确保遵循特定标准的文本列具有相同的字符串长度 
  • 示例: 美国 phone_number 列为 9 个字符而非 14 个字符
  • 可能的解决方案:
    • 删除受长度违规影响的行
    • 将受影响的观测设为缺失值

3. 文本数据格式不一致

  • 是什么: 确保遵循特定标准的文本列具有相同的字符串长度 
  • 示例: 美国 phone_number 列为 9 个字符而非 14 个字符
  • 可能的解决方案:
    • 删除受长度违规影响的行
    • 将受影响的观测设为缺失值

数据一致性问题

1. 数值列的单位一致性

  • 是什么: 确保数值列的单位一致(例如所有观测中的温度均使用摄氏或华氏。这在合并来自不同国家或来源的数据集时尤为重要。) 
  • 示例: 温度列以摄氏为单位,但出现极端高温或低温值 
  • 可能的解决方案:
    • 删除无法确定单位且无法通过合理性校验的数据行
    • 在可能的情况下统一标准化单位

2. 日期列的单位一致性

  • 是什么: 确保日期列的日期时间格式一致
  • 示例: birthday 列同时存在 dd-mm-yyyy 和 mm-dd-yyyy 格式
  • 可能的解决方案:
    • 在可能的情况下标准化日期时间格式
    • 删除无法确定日期时间格式且无法通过合理性校验的数据行

3. 数值列的跨字段校验

  • 是什么: 跨字段校验是指利用数据集中的多个字段来验证另一个字段的有效性。例如,确保各部分与整体列相加得到相关总计。
  • 示例: 各舱位的航班预订数相加等于记录的总预订数
  • 可能的解决方案:
    • 删除未通过合理性校验的数据行
    • 基于对数据的领域知识应用相应规则 

4. 日期列的跨字段校验

  • 是什么: 确保日期与时间相关列通过合理性校验(例如,确保网络研讨会的注册日期总是早于参加日期) 
  • 示例: date_of_birth 列与 age 列不一致
  • 可能的解决方案:
    • 删除未通过合理性校验的数据行
    • 基于对数据的领域知识应用相应规则 

缺失数据问题

1. 完全随机缺失

  • 是什么: 缺失值与数据集中其他值之间不存在系统性关系
  • 示例: 观察到缺失数据与数据集中其他值之间没有关系
  • 可能的解决方案:
    • 删除缺失行
    • 使用中位数或均值等集中趋势度量对缺失行进行插补
    • 使用算法/机器学习方法对缺失行进行插补
    • 收集新的数据点和特征 

2. 随机缺失

  • 是什么: 缺失数据与其他已观测值之间存在系统性关系
  • 示例: 某地区的人口普查数据缺失,因为该地区邮政服务覆盖不足
  • 可能的解决方案:
    • 删除缺失行
    • 使用中位数或均值等集中趋势度量对缺失行进行插补
    • 使用算法/机器学习方法对缺失行进行插补
    • 收集新的数据点和特征 

3. 非随机缺失

  • 是什么: 缺失数据与其他未观测值之间存在系统性关系 
  • 示例: 传感器的温度读数缺失,因为温度过低或过高
  • 可能的解决方案:
    • 删除缺失行
    • 使用中位数或均值等集中趋势度量对缺失行进行插补
    • 使用算法/机器学习方法对缺失行进行插补
    • 收集新的数据点和特征 

主题