dataframe - Julia DataFrame的转置

标签 dataframe julia

让我们创建Julia DataFrame

df=convert(DataFrame, rand(10, 4))

看起来像这样。我正在尝试对此dataFrame进行转置。如下所示,“转置”功能似乎不适用于Julia Data Frame。

enter image description here

过去,我广泛使用了Python Pandas数据框包。在Python中,它就像“df.T”一样简单。请让我知道一种处理此数据帧的方法。

最佳答案

我有同样的问题,并尝试了对您的问题的评论中建议的策略。但是,我遇到的问题是,如果您的DataFrame具有Matrix值,则无法转换为NA。您必须将它们更改为其他内容,然后转换为Matrix。当我想从NA转换回Matrix类型时,在转换回DataFrame时遇到很多问题。

这是使用DataFramestackunstack函数实现的方法。

julia> using DataFrames

julia> df = DataFrame(A = 1:4, B = 5:8)
4×2 DataFrame
│ Row │ A     │ B     │
│     │ Int64 │ Int64 │
├─────┼───────┼───────┤
│ 1   │ 1     │ 5     │
│ 2   │ 2     │ 6     │
│ 3   │ 3     │ 7     │
│ 4   │ 4     │ 8     │

julia> colnames = names(df)
2-element Array{Symbol,1}:
 :A
 :B

julia> df[!, :id] = 1:size(df, 1)
1:4

julia> df
4×3 DataFrame
│ Row │ A     │ B     │ id    │
│     │ Int64 │ Int64 │ Int64 │
├─────┼───────┼───────┼───────┤
│ 1   │ 1     │ 5     │ 1     │
│ 2   │ 2     │ 6     │ 2     │
│ 3   │ 3     │ 7     │ 3     │
│ 4   │ 4     │ 8     │ 4     │
:id文档建议添加DataFrame列,以帮助您进行堆叠。

现在,堆叠要转置的列:
julia> dfl = stack(df, colnames)
8×3 DataFrame
│ Row │ variable │ value │ id    │
│     │ Symbol   │ Int64 │ Int64 │
├─────┼──────────┼───────┼───────┤
│ 1   │ A        │ 1     │ 1     │
│ 2   │ A        │ 2     │ 2     │
│ 3   │ A        │ 3     │ 3     │
│ 4   │ A        │ 4     │ 4     │
│ 5   │ B        │ 5     │ 1     │
│ 6   │ B        │ 6     │ 2     │
│ 7   │ B        │ 7     │ 3     │
│ 8   │ B        │ 8     │ 4     │

然后拆栈,切换id和变量名(这就是为什么必须添加:id列的原因)。
julia> dfnew = unstack(dfl, :variable, :id, :value)
2×5 DataFrame
│ Row │ variable │ 1      │ 2      │ 3      │ 4      │
│     │ Symbol   │ Int64⍰ │ Int64⍰ │ Int64⍰ │ Int64⍰ │
├─────┼──────────┼────────┼────────┼────────┼────────┤
│ 1   │ A        │ 1      │ 2      │ 3      │ 4      │
│ 2   │ B        │ 5      │ 6      │ 7      │ 8      │

关于dataframe - Julia DataFrame的转置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37668312/

相关文章:

python - 从行值创建列并填充 - pandas

r - 通过键向量(R)获得值

string - 在 Julia 中剪切文件

error-handling - Julia 中抛出错误和返回错误的区别

Julia 内置函数求和数组?

不带索引列的 Python 数据透视 DataFrame

python - 如何将字符串数据分类为整数?

dataframe - Julia - 线性回归 - 错误 : DimensionMismatch

Julia -朗 : Square an image with a fixed background colour

欧氏距离的python数据帧矩阵