Java 中的数据导入
Anthony Markham
VP Quant Developer
.drop() 删除不需要的列.addColumns() 添加预计算或分类列// 删除指定列 Table cleaned = dataTable.drop("TempID", "Notes");// 添加两个新列 StringColumn statusCol = StringColumn.create("Status", "Active", "Inactive", "Active"); IntColumn priorityCol = IntColumn.create("Priority", 1, 2, 3); Table enhanced = dataTable.addColumns(statusCol, priorityCol);
Selection 指定筛选条件// 创建筛选条件 Selection outliers = dataTable.doubleColumn("Value") .isLessThan(lowerBound) .or(dataTable.doubleColumn("Value") .isGreaterThan(upperBound));// 删除满足条件的行 Table cleanedData = dataTable.dropWhere(outliers);
.rowCount() - 统计表的行数// 比较行数
System.out.println("Original rows: " + dataTable.rowCount());
System.out.println("After dropping outliers: " +
cleanedData.rowCount());
Original rows: 100
After dropping outliers: 95
and、or、not 方法// 复杂布尔筛选 Selection techHighPaid = dataTable.stringColumn("Department") .isEqualTo("Technology") .and(dataTable.doubleColumn("Salary") .isGreaterThan(100000));// 取反选择(NOT) Selection nonTechOrLowPaid = techHighPaid.not();
// 用预定义函数转换整列
StringColumn upperNames = dataTable.stringColumn("Name").map(s -> s.toUpperCase());
// 转换列中的值 DoubleColumn prices = dataTable.doubleColumn("Price"); DoubleColumn discounted = prices.map(price -> price * 0.9);// 设置名称并添加列 discounted.setName("DiscountedPrice"); Table withDiscounts = dataTable.addColumns(discounted);
.drop() - 从表中删除列.dropWhere() - 删除满足条件的行.addColumns() - 向表添加新列.map() - 转换列值// 核心高级操作方法
dataTable.drop("TemporaryID");
dataTable.dropWhere(selection);
dataTable.addColumns(newColumn);
doubleCol.map(value -> value * 2);
Java 中的数据导入