Julia DataFrame列名

时间:2017-07-26 02:55:51

标签: dataframe julia

我想命名空白DataFrame的列名。

我很难(重新)在v0.6中命名DataFrame的多个列。

我尝试过生成名字:

df = DataFrame()
nms = [":x$i" for i in 1:2]
df[nms[1] = rand(10)]
df[nms[2] = rand(10)]

但名称的符号要求不适用于$宏。有人有修复吗?

1 个答案:

答案 0 :(得分:5)

df = DataFrame()
nms = [Symbol("x$i") for i in 1:2]
df[nms[1]] = rand(10)
df[nms[2]] = rand(10)

有效,与所讨论的代码最相似。关键是使用Julia Symbols而不是字符串索引DataFrames。

使df更紧凑的方法是使用DataFrame构造函数,该构造函数将列作为参数。有一个,但参数是命名参数,因此您需要splat(即...)Dict来插入参数。 Dict本身需要以编程方式生成。要维护Dict中列的特定顺序,您需要一个OrderedDict。结果是:

using DataFrames, DataStructures

df = DataFrame(;OrderedDict((Symbol("x$i")=>rand(10) for i=1:3)...)...)