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

如何用DataFramesMeta.jl(含@chain管道)扩展DataFrame与向量?

问题描述

现有如下Julia中的DataFrame a 和向量 y:

a = DataFrame(t = [0; 0], x = [1, 2])
y = [0.1, 0.2, 0.3]

需要将二者合并得到如下形式的结果,优先使用DataFramesMeta.jl实现,且偏好使用@chain管道:

Row │ t        x     
     │ Float64  Int64 
─────┼────────────────
   1 │     0.1      1
   2 │     0.2      1
   3 │     0.3      1
   4 │     0.1      2
   5 │     0.2      2
   6 │     0.3      2
解决方案

可以通过**交叉连接(cross join)**实现需求,结合DataFramesMeta.jl的@chain管道和@rtransform宏完成,具体代码如下:

using DataFrames, DataFramesMeta

a = DataFrame(t = [0; 0], x = [1, 2])
y = [0.1, 0.2, 0.3]

result = @chain a begin
    select(:x)
    @rtransform :t = y
    flatten(:t)
end

代码说明

  • select(:x):剔除原DataFrame中无用的t列,仅保留需要重复映射的x列。
  • @rtransform :t = y:为每一行的x绑定包含所有y元素的数组列t,此时t列是嵌套结构。
  • flatten(:t):将嵌套的t列展开为多行,每个数组元素对应一行,同时保留对应的x值,最终生成目标格式的DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 01:46:11