这个项目能做什么

Kotlin DataFrame 是 JetBrains 的开源孵化项目(beta 稳定性),在 JVM 上提供类型安全的内存表格数据处理。它旨在调和 Kotlin 的静态类型与数据的动态特性,使用交互式编译器插件在编译时评估结构变化,从而提供对列的类型安全访问。 README 中描述的关键特性: - 层次化:表示 JSON 或 JVM 对象树等层次化结构。 - 函数式:处理管道是 DataFrame 转换操作的链。 - 不可变:每个操作返回新的 DataFrame,尽可能复用底层存储。 - 可读:转换以接近自然语言的 DSL 表达。 - 实用:为常见问题提供简单解决方案,并支持复杂任务。 - 可互操作:可与 Kotlin 数据类和集合相互转换,便于与其他库的结构进行转换。 - 泛型:可存储任意类型的对象,不仅限于数字或字符串。 - 类型安全:即时生成扩展属性,实现带空安全的类型安全访问。 - 多态:类型兼容性源自列模式兼容性;函数可以只要求列的子集。 它通过 `%use dataframe` 行魔法与 Kotlin Notebook 以及使用 Kotlin Jupyter Kernel 的其他环境(Datalore、Jupyter Notebook)集成。该项目称其灵感来自 krangl、Kotlin Collections 和 pandas。 文档涵盖快速入门指南、设置、数据模式、编译器插件配置以及受支持操作的完整列表,包括从 SQL 数据库读取、读写 JSON、CSV 和 Apache Arrow、连接数据框、groupBy 以及渲染为 HTML。可视化由单独的 Kandy 绘图库提供。 设置说明针对 Gradle、Maven 和 Kotlin Toolchain 给出,依赖坐标如来自 Maven Central 的 `org.jetbrains.kotlinx:dataframe:1.0.0-rc01`,并附有配置编译器插件的说明。兼容性表将库版本映射到最低 Java 版本、Kotlin 版本、Kotlin Jupyter 版本、Apache Arrow 版本、编译器插件版本和兼容的 Kandy 版本。 一个代码示例展示了读取 CSV 文件、转换为类型化模式、重命名列、按列值过滤、将字符串列转换为列表、添加计算列,以及将结果写回 CSV。 该项目采用 Apache 2.0 许可,并受 JetBrains 开源与社区行为准则约束。