Tablesaw 简介

Java 中的数据导入

Anthony Markham

VP Quant Developer

导入 Tablesaw

  • 数据处理库
  • 最常用的导入:import tech.tablesaw.api.*
  • 具体功能可另行导入,例如:
    • import tech.tablesaw.api.DoubleColumn
    • import tech.tablesaw.api.StringColumn
  • 统计运算:import tech.tablesaw.aggregate.*
1 https://jtablesaw.github.io/tablesaw/
Java 中的数据导入

表格格式

  • 数据按行与列组织
  • 列 = 变量/特征
  • 行 = 观测/实例

显示示例表格,并标注列与行的图像。

Java 中的数据导入

表格格式

  • 可用数组或集合存储数据
// 传统 Java 方法(繁琐)
import java.util.Arrays;
import java.util.List;
List<String> names = Arrays.asList("Anna", "Bob", "Carlos");
List<Integer> ages = Arrays.asList(25, 34, 42);
Java 中的数据导入

创建表

  • 选项:从零创建、从外部文件、或由已有列创建
// 从零创建
Table employees = Table.create("Employees")
    .addColumns(
        StringColumn.create("Name", "John", "Lisa", "Omar"),
        DoubleColumn.create("Salary", 50000, 60000, 55000)
    );
// 由已有列创建
StringColumn dept = StringColumn.create("Department", 
    "Sales", "Marketing", "Engineering");
Table departments = Table.create("Departments", dept);
  • 方法 addColumns()create()
Java 中的数据导入

表的元数据

  • 维度:table.shape()
  • 列名:table.columnNames()
  • 表结构:table.structure()
  • 预览数据:table.first(n), table.last(n)
// 打印维度
System.out.println(data.shape());  // [rows, columns]
[10, 4]
Java 中的数据导入

表的元数据

// 打印列名
System.out.println(table.columnNames());
[Day, Temperature, Precipitation]
// 打印详细结构
System.out.println(table.structure());
         Structure of table          
 Index  |   Column Name   |  Column Type  |
     0  |            Day  |       STRING  |
     1  |    Temperature  |       DOUBLE  |
     2  |  Precipitation  |       DOUBLE  |
Java 中的数据导入

表的元数据

// 预览前三行
System.out.println(table.first(3));
                  table                  
    Day     |  Temperature  |  Precipitation  |
    Monday  |         22.5  |              0  |
   Tuesday  |           24  |            2.5  |
 Wednesday  |         23.2  |            5.2  |
Java 中的数据导入

添加列

  • 添加列:table.addColumns(newColumn)
// 新增一列
DoubleColumn bonus = DoubleColumn.create("Bonus", 1000, 1500, 2000);
employees = employees.addColumns(bonus);
Java 中的数据导入

删除与重命名列

// 删除列
employees = employees.removeColumns("StartDate");
// 重命名列
employees.column("Salary").setName("AnnualSalary");
// 获取列类型
employees.column("Salary").type();
ColumnType.INTEGER

$$

  • 会返回修改后的表 💡
Java 中的数据导入

总结

方法/语法 说明
Table.create("TableName") 创建指定名称的表
StringColumn.create("ColumnName", values) 创建字符串列
table.shape() 返回维度 [行, 列]
table.columnNames() 返回表中的列名
table.structure() 显示表结构信息
table.first(n) 返回前 n 行
table.last(n) 返回后 n 行
table.addColumns(newColumn) 向表中添加新列
1 https://www.javadoc.io/doc/tech.tablesaw/tablesaw-core
Java 中的数据导入

Vamos praticar!

Java 中的数据导入

Preparing Video For Download...