2017-07-26 84 views
2

我想命名空白DatFrame的列名稱。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)] 

但名稱符號要求不與$宏工作。有沒有人有修復?

回答

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

工作原理與代碼有很大差異。關鍵是用Julia符號而不是字符串索引DataFrames。

更簡潔的方式使df正在使用一個DataFrame構造函數,它將列作爲參數。有一個,但參數是命名參數,所以你需要圖示(即...)一個Dict插入參數。 Dict本身需要以編程方式生成。爲了保持Dict中列的特定順序,你需要一個OrderedDict。結果是:

using DataFrames, DataStructures 

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