2024年11月Tablesaw下载-Tablesaw v0.38.1

发布时间:

  ⑴Tablesaw是一款可以对各类数据表进行处理的强大软件,基于Java语言开发,具有创建统计模型和可视化效果的能力,通过该软件用户可以各种可视化数据绘图,可以通过绘图的方式将表格数据直观的展示出来;Tablesaw功能丰富简单易用,内置强大稳定的数据框架和可视化库,可用于加载转换过滤和总结数据,对于经常处理各种表格数据的用户可下载这款软件进行使用,该软件支持各类数据可视化,可自由选择多种图形可视化显示,非常方便实用。

  ⑵从RDBMS,Excel,CSV,JSON,HTML或固定宽度文本文件导入数据,无论这些文件是本地文件还是远程文件(http,S等

  ⑶将数据导出到CSV,JSON,HTML或固定宽度文件。

  ⑷通过追加或合并表

  ⑸添加和删除列或行

  ⑹排序,分组,查询

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

  ⑻描述性统计:平均值,最小值,最大值,中位数,总和,乘积,标准差,方差,百分位数,几何平均值,偏度,峰度等。

  ⑼Plot.ly支持多种可视化类型。Tablesaw已经支持许多种,包括时间序列图,柱状图,D直方图,箱线图,折线图,面积图,散点图,D散点图,气泡图,排列图,饼图,和条形图。

  ⑽我们支持地块上的多种变体。例如,对于条形图,我们支持垂直和水平,一变量以及分组或堆叠的图表。

  ⑾我们不断增加对许多其他类型的支持,包括地理地图,树图,网络图,热图,数据图,分布图,D表面,D色带,风玫瑰图,三次图,D密度图,等高线图,树-地图,小提琴图,散点图矩阵等。

  ⑿我们提供了一个一致的Java

  ⒀API,用于使用构建器,键入安全枚举和其他Java功能来构造这些图,以最大程度地减少使用基于JavaScript的工具时的拼写和其他问题。

  ⒁这些地块具有单一,一致且专业的外观。

  ⒂每个图表都是交互式的。它们使用常见的交互式工具系列进行渲染,以进行保存,打印,平移,缩放,选择点等。

  ⒃支持的自定义范围非常广泛,包括字体,图例,自定义轴,尖峰,悬停效果等。您几乎总是可以得到所需的可视化效果。

  ⒄当您准备与更广阔的世界共享可视化效果时,可以在网页中使用输出

  ⒅注意:为了最大程度地减少核心库的大小,某些阅读器(当前为JSON,HTML表和Excel文件打包在单独的模块中。您需要将它们包括在项目中才能使用这些Table.read()方法。

  ⒆有关可用方法的列表,请参见DatadocReader的Javadoc Table.read()。

  ⒇文本文件(CSV,制表符分隔,固定宽度字段等

  ⒈大多数文本格式都被类似地对待。本节介绍了诸如CSV之类的矩形文本格式,但是许多信息也与JSON,Excel和HTML表有关。

  ⒉从磁盘上的CSV文件加载数据的最简单方法是使用:

  ⒊Table t = Table.read().file("myFile.csv");

  ⒋此方法为文件名以外的所有内容提供默认值。我们假设列之间用逗号分隔,并且文件中有一个标题行,我们用它来创建列名。如果一个或多个默认值不正确,则可以使用类CsvReadOptions自定义加载过程。

  ⒌您可以使用构建器创建选项对象:

  ⒍该头选项指示是否有在该文件的顶部的一行标题行。如果header为false,我们将所有行都视为数据。

  ⒎例如,如果要加载制表符分隔的文件,则分隔符选项允许您指定除逗号以外的分隔符。

  ⒏使用dateFormat可以提供一种读取日期的格式。文件中的所有日期都应使用相同的格式,并且该格式与java.time.format.DateTimeFormatter中定义的格式相同。

  ⒐创建表时,将基于从中加载文件的名称为其指定默认名称。您可以随时使用更改名称table.setName(aString);。表名称用于打印表及其相关信息。

  ⒑使用所有这些方法,Tablesaw会查看文件中每一列中的数据,并对类型进行疯狂的猜测。实际上,它查看数据样本并应用一些启发式方法。当然,数据集可能包含类型推断样本中遗漏的稀有值。如果发生这种情况,您可以设置选项sample(false)以在执行类型推断时考虑所有数据。

  ⒒如果似乎没有其他合适的方法,则将该列读取为StringColumn。通常,Tablesaw会正确处理,但有时需要一点帮助。

  ⒓指定每一列的数据类型

  ⒔通过一点帮助,我们意味着您可以通过将ColumnType对象的数组传递给read(。csv(方法来显式指定类型。例如:

  ⒕如果这看起来很麻烦,那么它确实具有一些优势。

  ⒖首先,由于系统无需推断列类型,因此减少了加载时间。如果文件很大,则节省的时间可能很长。

  ⒗其次,它使您可以完全控制列的类型。

  ⒘在某些情况下,您必须指定列类型,因为Tablesaw无法正确猜测。例如,如果文件中的时间编码为HHmm,以使中午显示为“

  ⒙”,则无法推断这意味着中午:,而不是整数。

  ⒚捷径:获取猜测的列类型

  ⒛如果表中有许多列,那么手工构建列类型数组可能很繁琐。为了帮助您,CsvReader提供了一些方法,这些方法可以以数组形式或字符串形式返回推断出的ColumnType。格式化字符串,使其类似于Java数组文字。即使读取文件失败,也可以使用此方法。

  ①请注意,返回的String是一个合法的数组文字,您可以粘贴到Java代码中:类型以逗号分隔,并且提供索引位置和列名,以便将它们解释为注释。您可以将其粘贴到您的代码中,然后对其进行编辑以修复任何不正确的列类型。

  ②指定列类型的另一个优点是,如果不需要,可以跳过某些列。您可以使用特殊的“ SKIP”列类型来阻止导入这些列,如下所示:

  ③在此示例中,第一列和最后一列均未加载。

  ④Tablesaw具有一组预定义的字符串,当从CSV文件读取时,它会解释为丢失的数据。它们是:“ NaN”,“ *”,“ NA”,“

  ⑤null”,当然还有空字符串“”。

  ⑥当遇到这些字符串之一时,它将被Tablesaw中特定于类型的丢失指示符替换。对于字符串,这是一个空字符串。对于双打,就是Double.NaN。有关更多信息,请参见JavaDoc

  ⑦for ColumnType。

  ⑧如果文件具有不支持的缺失值指示符(例如“-”,则可以在选项构建器中提供它。

  ⑨由于语言环境和多种可能的格式,因此导入日期和时间可能会比较棘手。与其他列类型一样,Tablesaw会尽力确定要表示的类型并将其正确导入。如果失败,则有两件事可以帮助您。首先是指定语言环境。语言环境还可以帮助处理数字格式。

  ⑩第二个是为每个时间列指定精确格式。

  Ⅰ使用Stream API

  Ⅱ当您在文件系统上存储了CSV文件时,以上所有示例都试图简化加载过程。加载CSV的一种更灵活的方法是使用Stream接口,该接口采用java.io.InputStream作为参数。

  ⅢTable.read().csv(InputStream stream, String tableName);

  Ⅳ它可以用来读取本地文件,也可以用来在S等网络中读取网络文件。这是如何使用它的一些示例。

  Ⅴ从网站加载CSV:

  Ⅵ从S加载CSV:

  Ⅶ默认情况下,我们假设您的文件采用UTF-编码。如果文件使用其他编码,则加载过程会稍有不同。您需要在使用正确编码构造的FileInputStream上打开阅读器。这是一个例子。

  Ⅷ从数据库查询结果创建表同样容易。在这种情况下,您无需指定列类型,因为它们是从数据库列类型推断出来的。

  ⅨTable t = Table.read().db(ResultSet resultSet, String tableName);

  Ⅹ这是一个更完整的示例,其中包括JDBC设置:

  ㈠从HTML,JSON,Excel导入

  ㈡Tablesaw支持从HTML,JSON和Excel导入数据。有关更多信息,请参见Javadoc中的Table.read(方法。您将需要添加相应的可选依赖项:

  ㈢条形图,饼图和帕累托图

  ㈣Tablesaw是Java数据科学平台,可以过滤和转换数据集。它还为可视化提供了广泛的支持。在此讨论中,我们将使用来自NOAA的Tornado数据集,该数据集可在Tablesaw项目的data文件夹中找到。

  ㈤尽管Tablesaw可以生成出版质量的图形,但这里的重点是探索性分析,其中内容和易用性比修饰更重要。在这里,我们重点介绍一些用于处理单变量数据的常见绘图类型:

  ㈥可以在类BarPieAndParetoExample.java中找到本文档中用于生成图表的所有代码。

  ㈦我们建议您打开该课程并继续学习。

  ㈧首先,我们加载并清理龙卷风数据集。我们使用Table.read(。csv(打开文件。

  ㈨接下来,我们清理文件。我们要使用比例列。龙卷风根据其风速被分配为从到的比例,但是我们的数据集缺少编码为-的缺失值,这将使图表消失。为了解决这个问题,我们将比例列中的每个-值设置为缺失值指标。然后,我们可以创建图。

  ㈩我们从无处不在的条形图开始。条形图通常显示已汇总为组的数据。要创建条形图,您需要做两件事:

  一些类别将它们分组

  我们首先根据龙卷风的强度计算与龙卷风有关的死亡人数。

  然后我们绘制结果:

  绘制平均值,中位数和其他汇总统计信息

  在上面的示例中,我们创建了显示值总和的图。为此,我们首先在表上调用summary(,传入要汇总的列的名称,聚合函数sum,并应用子句by(来指定如何对数据进行分组。

  在AggregationFunctions类中定义了许多聚合函数,例如sum,mean,median,standardDeviation,percentile(n,max,kurtosis等。我们可以使用任何聚合函数代替sum。在这里,我们将看一下平均值。

  我们采用与上述相同的策略,使用汇总方法创建一个新表,该表收集每个“标度”值的平均受伤人数。一旦有了,我们就创建并显示情节

  在有关高级绘图功能的下一部分中,我们将介绍如何创建堆叠和分组的条形图。

  饼图被广泛批评和普遍存在。通常,条形图更易于解释,因此通常是首选。我们将被撤职,但是不提供饼图支持。此示例显示了一个饼图,该饼图显示的数据与上面的第一个条形图相同:

  条形图上的一个简单变化是帕累托图。在下面的曲线图中,死亡人数是按美国州求和的,结果按照总数从高到低的顺序排序。示例代码中有详细信息。

  创建气泡图的更多选项 (#) - 谢谢 rayeaster

  修复对java.sql.Time的支持 (#) - 感谢 brainbytes。

  允许在聚合时使用空切片 (#) - 谢谢 emillynge

  修正ColumnType.pare中的NPE(#)

  修正集的NPE(#)