使用Java tablesaw table革新您的数据分析

Tablesaw java库的table功能可通过简单的API进行过滤、连接、绘图和操作表格数据。支持CSV、数据库和Excel。
On this page

使用Java tablesaw table革新您的数据分析

请将以下英文内容翻译成中文,保持原意并保持格式,包括">"。只输出翻译后的内容。

安装与设置§

Tablesaw是一个用于分析表格数据的开源Java库,构建在Java 8流的基础之上。它可以从GitHub下载,也可以作为Maven或Gradle项目的依赖项添加。编写本文时的最新版本是0.38.7

使用Maven添加Tablesaw:

1<dependency>
2  <groupId>tech.tablesaw</groupId>
3  <artifactId>tablesaw-core</artifactId>
4  <version>0.38.7</version>
5</dependency>
xml

使用Gradle:

1implementation 'tech.tablesaw:tablesaw-core:0.38.7'
groovy

现在我们准备好在我们的Java代码中开始使用Tablesaw了。

介绍§

Tablesaw是由Randall Griffith于2016年创建的,旨在为Java中的表格数据提供一个简单的API,类似于Python中的Pandas。它由Anthropic进行维护,并在Apache 2.0许可下提供。

该库提供了两个主要结构 - TableColumn,用于处理表格数据。Table表示具有多个命名列的完整数据集,而Column提供了操作单个列的API。Tablesaw在底层使用Java 8流进行优化的数据处理。

Tablesaw的一些主要功能和能力包括:

  • 从CSV、数据库、Excel、HTML等导入数据
  • 过滤、抽样、聚合、分组和连接数据
  • 添加/删除/重新排序列
  • 处理缺失值
  • 执行数学、文本、日期/时间和统计函数
  • 创建图表和可视化
  • 导出数据到各种格式

接下来,我们将通过一些实例来说明如何使用Tablesaw。

创建表格§

可以通过添加列来以编程方式创建表格:

1Table table = Table.create("MyTable")
2  .addColumns(
3    Column.create("id", IntColumn.create()),
4    Column.create("name", StringColumn.create()),
5    Column.create("age", IntColumn.create())
6  );
java

也可以从CSV文件等外部源导入表格:

1Table table = Table.read().csv("data.csv");
java

可以向现有表格添加或删除列:

1table.addColumns(Column.create("salary", FloatColumn.create()));
2
3table.removeColumns("id");
java

列的顺序也可以更改:

1table.columnOrder("age", "name", "salary");
java

查询和过滤§

Tablesaw 提供了类似于 SQL 的语法来查询表格:

1Table results = table.selectWhere(table.intColumn("age").isGreaterThan(30));
java

这个过滤器是用来筛选年龄列大于30的行。

我们也可以对数据进行分组和聚合:

1Table summary = table.summarize("age", table.intColumn("age").average()).by("department");
java

这个计算了按"department"列分组后的平均年龄。

连接和合并§

表格可以在垂直方向(添加列)和水平方向(添加行)上进行合并:

1Table joined = table1.concat(table2); // adds rows
2
3Table wide = table1.join(table2); // adds columns
java

对于基于键的连接,Tablesaw 支持内连接、左外连接、右外连接和全外连接:

1Table innerJoin = table1.innerJoin(table2, "id");
2
3Table leftJoin = table1.leftOuterJoin(table2, "id");
java

转换数据§

Tablesaw 提供了许多选项来转换列数据,包括:

  • sortAscending()sortDescending()
  • map() 应用函数
  • set() 改变值
  • removeMissing() 过滤行
  • bin() 分桶/离散化
  • logN() 和其他数学函数
  • lowerCase()upperCase()trim() 处理文本

绘图和可视化§

Tablesaw通过为Plot.ly JavaScript绘图库提供包装器来支持数据可视化。以下是新库的一些示例。

龙卷风龙卷风龙卷风
龙卷风龙卷风龙卷风
龙卷风龙卷风龙卷风
龙卷风龙卷风龙卷风

plot()方法与JSPlot库集成,可以生成直方图、散点图和条形图等可视化图表。

1table.plot().histogram("age", 50);
java

图表可以自定义,保存到文件,并在Swing/JavaFX窗口中显示。

输入/输出§

Tablesaw支持读写各种文件格式:

  • CSV, TSV
  • Excel (XLSX)
  • HTML表格
  • JSON
  • 通过JDBC连接的数据库

并可以导出为PDF、Markdown和Excel等格式。

1Table table = Table.read().csv("data.csv");
2
3table.write().csv("output.csv");
java

高级功能§

Tablesaw的一些更高级的功能包括:

  • 通过过滤、插补处理缺失数据
  • 用于大型数据集的多线程并行处理
  • 文本分析功能,如词干提取和n-grams
  • 带有日期/时间列的时间序列分析
  • 创建子表和抽样

结论§

Tablesaw提供了一个简单而强大的API,用于分析和操作Java中的表格数据。通过其类似于SQL的语法,支持连接和聚合、文件导入/导出、绘图集成等功能,Tablesaw是处理表格数据的一个很好的选择。

它与其他Java库(如Apache Commons Math用于统计和数学,以及Spark DataFrames用于分布式数据集)相比具有优势。对于适合内存的中小型数据集,Tablesaw提供了一个简洁易用的API。

请查看Tablesaw文档以开始使用,并查看代码示例了解更多用法详情。

  • All
  • English
  • 简体中文
  • Best match
  • Oldest
  • Newest
  • 2023
  • Amanda
  • Davy
  • IToolkit
  • Mia
  • 大威
  • API
  • Base64
  • Binary
  • C
  • C++
  • Checksum
  • Coding
  • Computer Science
  • CRC
  • CRC32
  • Cryptography
  • CSharp
  • CSV
  • Cyclic Codes
  • Data
  • DCOM
  • Decoding
  • Education
  • Encoding
  • Encryption
  • Functions
  • Go
  • gpt
  • Hash
  • HTML
  • Image
  • Java
  • JavaScript
  • Kotlin
  • Linux
  • Lua
  • Mac
  • MBR
  • MongoDB
  • MySQL
  • Other
  • PHP
  • Programming
  • Python
  • R
  • Redundancy
  • Rust
  • Scala
  • Security
  • SHA
  • Software
  • SQL
  • SQLServer
  • Strings
  • Swift
  • VB
  • Windows
  • Windows 7
  • Applications
  • Binary Data
  • Data Retrieval
  • Database
  • File Path
  • Image Storage
  • Language Display
  • Operating Systems
  • Srtrings
  • 编码
  • 解码