恭喜!

Java 数据清洗

Dennis Lee

Software Engineer

数据清理之旅

// 从质量评估开始
DescriptiveStatistics stats = new DescriptiveStatistics(values);
System.out.println("Mean: " + stats.getMean());

// 到字符串转换 String clean = text.trim().toLowerCase();
// 到范围校验 boolean isValid = Range.between(0, 100).contains(value);
// 到表格清理 Table cleaned = data.where(sales.isGreaterThan(1000));
Java 数据清洗

评估数据质量

  • 劣质数据会导致错误决策
  • 评估数据质量:检查离群值、缺失值、错误类型
// 检查统计量
double mean = stats.getMean();

// 检测空值 boolean isMissing = Optional.ofNullable(value).isEmpty();
// 校验类型 boolean isValidDate = LocalDate.parse(dateStr, formatter);
Java 数据清洗

一致地转换数据

  • 格式不一致会阻碍准确分析
  • 清理字符串;标准化类别和日期
// 规范化字符串(如移除非字母)
String cleaned = dirtyName.replaceAll("[^a-zA-Z\\s]", "");

// 标准化类别 String standard = categoryMap.getOrDefault(value, "Other");
// 转换日期 LocalDateTime datetime = LocalDateTime.parse(dateStr, formatter);
Java 数据清洗

验证数据完整性

  • 在数据进入系统前拦截坏数据
  • 按业务规则检查取值范围和格式
// 检查范围
boolean inRange = Range.between(min, max).contains(value);

// 校验模式 boolean matches = Pattern.matches(pattern, text);
// 强制约束 Set<ConstraintViolation<Data>> violations = validator.validate(data);
Java 数据清洗

清理表格数据

for (String colName : data.columnNames()) {
    // 检查缺失值 
    System.out.println(data.column(colName).countMissing());
}

StringColumn cleaned = names.map(String::toLowerCase) // 清理文本 .setName("Clean_Names"); // 命名新列
Table summary = data .where(sales.isGreaterThan(1000)) // 过滤行 .summarize("Sales", mean) // 汇总数据 .by("Category"); // 分组结果
Java 数据清洗

资源

Java 数据清洗

准备清理

Java 数据清洗

Preparing Video For Download...