带有Header的Array中的DataFrame

时间:2014-09-17 15:28:38

标签: dataframe julia

我有一个标题行的数组说:

arr = ["age" "height" "weight"; 
       20     175     73; 
       30     160     66]

我希望将其转换为DataFrame,推荐的方法是什么? 我目前的方法是下面的答案,任何更好的建议?

1 个答案:

答案 0 :(得分:4)

One Liners:

# convert a Matrix{Any} with a header row of col name strings to a DataFrame
# e.g. mat2df(["a" "b" "c"; 1 2 3; 4 5 6])

mat2df(mat) = 
    DataFrame([[mat[2:end,i]...] for i in 1:size(mat,2)], Symbol.(mat[1,:]))

# convert a Matrix and a list of col name strings to a DataFrame
# e.g. matncolnames2df([1 2 3;4 5 6], ["a","b","c"])

matncolnames2df(mat, colnames) = 
    DataFrame([[mat[:,i]...] for i in 1:size(mat,2)], Symbol.(colnames))

Re:Iain Dunning的评论如下:这里有一个宏,但它调用的DataFrame构造函数已被弃用,上面的效果很好,所以现在它已经消失了......(Don'不用担心,这不好,我觉得Iain Dunning只是很好看:))