我想命名空白DataFrame的列名。
我很难(重新)在v0.6中命名DataFrame的多个列。
我尝试过生成名字:
df = DataFrame()
nms = [":x$i" for i in 1:2]
df[nms[1] = rand(10)]
df[nms[2] = rand(10)]
但名称的符号要求不适用于$
宏。有人有修复吗?
答案 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)...)...)