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

如何优雅生成两个DataFrame的所有行组合?

在DataFrames.jl中生成两个DataFrame的笛卡尔积(全行组合)

你可以直接使用DataFrames.jl提供的crossjoin函数,这是实现两个DataFrame全行组合最优雅的方式,完全不需要手动处理每一列:

首先定义你的DataFrame:

using DataFrames
a = DataFrame(x1=["a";"b";"c"], y1=1:3)
b = DataFrame(x2=["d";"e"], y2=4:5)

执行笛卡尔积操作:

c = crossjoin(a, b)

运行后得到的结果就是你想要的全组合DataFrame:

6×4 DataFrame
 Row │ x1      x2      y1     y2    
     │ String  String  Int64  Int64 
─────┼──────────────────────────────
   1 │ a       d           1      4
   2 │ b       d           2      4
   3 │ c       d           3      4
   4 │ a       e           1      5
   5 │ b       e           2      5
   6 │ c       e           3      5

crossjoin会自动保留两个DataFrame的所有列,并且生成所有行的笛卡尔积,不管你的DataFrame有多少列、多复杂,都能直接适用,完全替代你之前那种繁琐的手动拼接方式。如果需要处理多个DataFrame的笛卡尔积,也可以直接传入多个参数,比如crossjoin(a, b, c)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 11:05:13