You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Kotlin Dataframe内置方法实现两列笛卡尔积?

Kotlin DataFrame 生成两列笛卡尔积的专属方法

有的,Kotlin DataFrame 提供了专属方法来生成笛卡尔积,无需转成原生集合操作,以下是两种常用实现方式:

1. 跨DataFrame的交叉连接(crossJoin)

如果两列分别来自两个独立的DataFrame,直接使用crossJoin方法即可得到笛卡尔积结果,效果等价于Pandas中merge(how='cross'):

import org.jetbrains.kotlinx.dataframe.api.*

val dfA = dataFrameOf("colA")(1, 2, 3)
val dfB = dataFrameOf("colB")("x", "y")

val cartesianResult = dfA.crossJoin(dfB)

执行后cartesianResult会包含所有(colA, colB)的组合值对。

2. 单DataFrame内两列的笛卡尔积

如果目标两列在同一个DataFrame中,可先将两列拆分为独立的DataFrame(按需去重),再执行交叉连接:

val sourceDf = dataFrameOf("colA", "colB")(1, "x", 2, "y", 3, "x")

// 提取两列并去重(不需要去重可去掉distinct())
val colADf = sourceDf.select("colA").distinct()
val colBDf = sourceDf.select("colB").distinct()

val cartesianResult = colADf.crossJoin(colBDf)

crossJoin是Kotlin DataFrame专门用于生成笛卡尔积的API,相比转原生集合的方式,代码更简洁且贴合DataFrame的操作范式。

内容的提问来源于stack exchange,提问作者czerny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 21:57:02