对于向量中的 df 创建向量,但我想要一个数据框

问题描述 投票:0回答:1

我正在 MyDFvector 中使用 dfx 创建变量, 但它返回 Vector[Vector] 但我只想要一个 DataFrame。 有什么帮助吗?

重现最小问题

using DataFrames

# create some DataFrames
mydfbase = DataFrame(a=[41, 41, 41, 41, 41, 41])
mydf1 = DataFrame(a=1:6)
mydf2 = DataFrame(a=7:12)
mydf3 = DataFrame(a=13:18)

# put into a vector
MyDFvector = [mydf1, mydf2, mydf3]
println(typeof(MyDFvector))

# 
RawDiff = [mydfbase.a  .-  dfx.a for dfx in MyDFvector]
println(typeof(RawDiff))
println(RawDiff)

mydfWant = DataFrame(a=[40, 39, 38, 37, 36, 35], b=[34, 33, 32, 31, 30, 29], c=[28, 27, 26, 25, 24, 23])
println(typeof(mydfWant))
println(mydfWant)

'= = = = = = = = = = = Terminal output
What I got-->
Vector{DataFrame}
Vector{Vector{Int64}}
[[40, 39, 38, 37, 36, 35], [34, 33, 32, 31, 30, 29], [28, 27, 26, 25, 24, 23]]

What I Want-->  (any generated column names)
DataFrame
6×3 DataFrame
 Row │ a      b      c     
     │ Int64  Int64  Int64 
─────┼─────────────────────
   1 │    40     34     28
   2 │    39     33     27
   3 │    38     32     26
   4 │    37     31     25
   5 │    36     30     24
   6 │    35     29     23
dataframe vector julia
1个回答
0
投票

似乎以下内容会让您

mydfWant

julia> DataFrame(stack(RawDiff), :auto)
6×3 DataFrame
 Row │ x1     x2     x3    
     │ Int64  Int64  Int64 
─────┼─────────────────────
   1 │    40     34     28
   2 │    39     33     27
   3 │    38     32     26
   4 │    37     31     25
   5 │    36     30     24
   6 │    35     29     23

要获得 Julia 中的许多有用帮助,请按“?”在 REPL 中,然后函数或类型非常有帮助(例如这个答案中的函数

stack
)。

© www.soinside.com 2019 - 2024. All rights reserved.