从文件获取数据
Kotlin Notebook 结合 Kotlin DataFrame 库,使您能够处理非结构化和结构化数据。这种组合提供了将非结构化数据(例如 TXT 文件中的数据)转换为结构化数据集的灵活性。
对于数据转换,您可以使用 add、split、convert 和 parse 等方法。此外,该工具集还支持从各种结构化文件格式中获取和操作数据,包括 CSV、JSON、XLS、XLSX 和 Apache Arrow。
在本指南中,您可以通过多个示例学习如何获取、精炼和处理数据。
开始之前
Kotlin Notebook 依赖于 Kotlin Notebook 插件,该插件在 IntelliJ IDEA 中默认内置并启用。
如果 Kotlin Notebook 功能不可用,请确保已启用该插件。有关更多信息,请参阅设置环境。
创建一个新的 Kotlin Notebook:
选择 File | New | Kotlin Notebook。
在 Kotlin Notebook 中,通过运行以下命令导入 Kotlin DataFrame 库:
kotlin%use dataframe
从文件获取数据
要在 Kotlin Notebook 中从文件获取数据:
打开您的 Kotlin Notebook 文件 (
.ipynb)。在笔记本开头的代码单元中添加
%use dataframe以导入 Kotlin DataFrame 库。在运行任何其他依赖于 Kotlin DataFrame 库的代码单元之前,请确保先运行包含
%use dataframe行的代码单元。使用 Kotlin DataFrame 库中的
.read()函数来获取数据。例如,要读取 CSV 文件,请使用:DataFrame.read("example.csv")。
.read() 函数会根据文件扩展名和内容自动检测输入格式。您还可以添加其他实参来自定义函数,例如使用 delimiter = ';' 指定分隔符。
有关其他文件格式的全面概览以及各种读取函数的详细信息,请参阅 Kotlin DataFrame 库文档。
显示数据
一旦在笔记本中拥有数据,您就可以轻松地将其存储在变量中,并通过在代码单元中运行以下内容来访问它:
val dfJson = DataFrame.read("jsonFile.json")
dfJson此代码将显示您选择的文件(如 CSV、JSON、XLS、XLSX 或 Apache Arrow)中的数据。

要深入了解数据的结构或架构,请对 DataFrame 变量调用 .schema() 函数。例如,dfJson.schema() 会列出 JSON 数据集中每一列的类型。

您还可以使用 Kotlin Notebook 中的自动补全功能来快速访问和操作 DataFrame 的属性。加载数据后,只需输入 DataFrame 变量名后跟一个点,即可查看可用列及其类型的列表。

精炼数据
在 Kotlin DataFrame 库提供的用于精炼数据集的各种操作中,关键示例包括分组、筛选、更新和添加新列。这些函数对于数据分析至关重要,让您可以有效地组织、清洗和转换数据。
让我们看一个示例,其中的数据在同一个单元格中包含电影标题及其对应的发行年份。目标是精炼此数据集以便于分析:
使用
.read()函数将数据加载到笔记本中。此示例涉及从名为movies.csv的 CSV 文件读取数据并创建一个名为movies的 DataFrame:kotlinval movies = DataFrame.read("movies.csv")使用正则表达式从电影标题中提取发行年份,并将其添加为新列:
kotlinval moviesWithYear = movies .add("year") { "\\d{4}".toRegex() .findAll(title) .lastOrNull() ?.value ?.toInt() ?: -1 }通过从每个标题中移除发行年份来修改电影标题。这可以清理标题以保持一致性:
kotlinval moviesTitle = moviesWithYear .update("title") { "\\s*\\(\\d{4}\\)\\s*$".toRegex().replace(title, "") }使用
filter方法专注于特定数据。在这种情况下,对数据集进行筛选以专注于 1996 年以后发行的电影:kotlinval moviesNew = moviesWithYear.filter { year >= 1996 } moviesNew
作为对比,以下是精炼前的数据集:

精炼后的数据集:

这是如何使用 Kotlin DataFrame 库的方法(如 add、update 和 filter)在 Kotlin 中有效精炼和分析数据的实际演示。
有关更多用例和详细示例,请参阅 Kotlin Dataframe 示例。
保存 DataFrame
在使用 Kotlin DataFrame 库在 Kotlin Notebook 中精炼数据后,您可以轻松导出处理后的数据。您可以为此使用各种 .write() 函数,这些函数支持保存为多种格式,包括 CSV、JSON、XLS、XLSX、Apache Arrow,甚至是 HTML 表格。这对于分享您的发现、创建报告或使数据可用于进一步分析特别有用。
以下是如何筛选 DataFrame、移除列、将精炼后的数据保存到 JSON 文件以及在浏览器中打开 HTML 表格的方法:
在 Kotlin Notebook 中,使用
.read()函数将名为movies.csv的文件加载到名为moviesDf的 DataFrame 中:kotlinval moviesDf = DataFrame.read("movies.csv")使用
.filter方法筛选 DataFrame,使其仅包含属于 "Action" 类型的电影:kotlinval actionMoviesDf = moviesDf.filter { genres.equals("Action") }使用
.remove从 DataFrame 中移除movieId列:kotlinval refinedMoviesDf = actionMoviesDf.remove { movieId } refinedMoviesDfKotlin DataFrame 库提供了各种写入函数来以不同的格式保存数据。在此示例中,使用
.writeJson()函数将修改后的movies.csv保存为 JSON 文件:kotlinrefinedMoviesDf.writeJson("movies.json")使用
.toStandaloneHTML()函数将 DataFrame 转换为独立的 HTML 表格,并在默认 Web 浏览器中将其打开:kotlinrefinedMoviesDf.toStandaloneHTML(DisplayConfiguration(rowsLimit = null)).openInBrowser()
下一步
- 探索使用 Kandy 库进行数据可视化
- 在在 Kotlin Notebook 中使用 Kandy 进行数据可视化中查找有关数据可视化的更多信息
- 有关 Kotlin 中可用于数据科学和分析的工具和资源的广泛概览,请参阅用于数据分析的 Kotlin 和 Java 库
