2017-11-14 54 views
2

Iは、DataFrameにこれを回すの簡単な方法があり、したがって、私はこの配列の配列をJuliaのDataFrameに変換するにはどうすればよいですか?

12-element Array{Array{Any,1},1}: 
Any[2015-09-01T00:00:00, 2016-09-01T00:00:00, 98, 53.1] 
Any[2015-10-01T00:00:00, 2016-10-01T00:00:00, 92, 58.7] 
Any[2015-11-01T00:00:00, 2016-11-01T00:00:00, 130, 64.6] 
Any[2015-12-01T00:00:00, 2016-12-01T00:00:00, 135, 67.4] 
Any[2016-01-01T00:00:00, 2017-01-01T00:00:00, 206, 59.2] 
Any[2016-02-01T00:00:00, 2017-02-01T00:00:00, 246, 54.1] 
Any[2016-03-01T00:00:00, 2017-03-01T00:00:00, 254, 53.9] 
Any[2016-04-01T00:00:00, 2017-04-01T00:00:00, 268, 65.7] 
Any[2016-05-01T00:00:00, 2017-05-01T00:00:00, 265, 61.5] 
Any[2016-06-01T00:00:00, 2017-06-01T00:00:00, 303, 52.8] 
Any[2016-07-01T00:00:00, 2017-07-01T00:00:00, 301, 59.1] 
Any[2016-08-01T00:00:00, 2017-08-01T00:00:00, 273, 54.6] 

ように、AnyArrayれる行のArrayを有する、計算された値の行をもたらすmapコールを有します列名などを使用していますか?簡単な方法がない場合は、私は難しい方法にオープンしています:)私はmapを4回実行して列を抽出し、DataFrameをビルドする必要があると考えることができますが、こうした一見平凡な操作...

EDIT私はrは、上記の表であるので、私は解決策がに列名を提供するだろうと仮定し、この

map(x -> map(y -> y[x], r), collect(1:4) 

などの列に行を「転置」することができますDataFrameコンストラクタ。私の一時的な解決策は、私はあなたのソリューションがはるかに優れていると思うので

DataFrame(map(x -> map(y -> y[x], r), collect(1:4)), [:a, :b, :c, :d]) 
+1

問題の解決策( 'collect'を引いたもの)はかなり良いです。ジェネリックなカラム名がOKの場合、 'DataFrame(hcat(r ...) ')'も動作します –

答えて

1
julia> df 
12-element Array{Array{Any,1},1}: 
Any["2015-09-01T00:00:00", "2016-09-01T00:00:00", 98, 53.1] 
Any["2015-10-01T00:00:00", "2016-10-01T00:00:00", 92, 58.7] 
Any["2015-11-01T00:00:00", "2016-11-01T00:00:00", 130, 64.6] 
Any["2015-12-01T00:00:00", "2016-12-01T00:00:00", 135, 67.4] 
Any["2016-01-01T00:00:00", "2017-01-01T00:00:00", 206, 59.2] 
Any["2016-02-01T00:00:00", "2017-02-01T00:00:00", 246, 54.1] 
Any["2016-03-01T00:00:00", "2017-03-01T00:00:00", 254, 53.9] 
Any["2016-04-01T00:00:00", "2017-04-01T00:00:00", 268, 65.7] 
Any["2016-05-01T00:00:00", "2017-05-01T00:00:00", 265, 61.5] 
Any["2016-06-01T00:00:00", "2017-06-01T00:00:00", 303, 52.8] 
Any["2016-07-01T00:00:00", "2017-07-01T00:00:00", 301, 59.1] 
Any["2016-08-01T00:00:00", "2017-08-01T00:00:00", 273, 54.6] 

julia> DataFrame(permutedims(Array(DataFrame(map(data,df))), [2, 1])) 
12×4 DataFrames.DataFrame 
│ Row │ x1     │ x2     │ x3 │ x4 │ 
├─────┼───────────────────────┼───────────────────────┼─────┼──────┤ 
│ 1 │ "2015-09-01T00:00:00" │ "2016-09-01T00:00:00" │ 98 │ 53.1 │ 
│ 2 │ "2015-10-01T00:00:00" │ "2016-10-01T00:00:00" │ 92 │ 58.7 │ 
│ 3 │ "2015-11-01T00:00:00" │ "2016-11-01T00:00:00" │ 130 │ 64.6 │ 
│ 4 │ "2015-12-01T00:00:00" │ "2016-12-01T00:00:00" │ 135 │ 67.4 │ 
│ 5 │ "2016-01-01T00:00:00" │ "2017-01-01T00:00:00" │ 206 │ 59.2 │ 
│ 6 │ "2016-02-01T00:00:00" │ "2017-02-01T00:00:00" │ 246 │ 54.1 │ 
│ 7 │ "2016-03-01T00:00:00" │ "2017-03-01T00:00:00" │ 254 │ 53.9 │ 
│ 8 │ "2016-04-01T00:00:00" │ "2017-04-01T00:00:00" │ 268 │ 65.7 │ 
│ 9 │ "2016-05-01T00:00:00" │ "2017-05-01T00:00:00" │ 265 │ 61.5 │ 
│ 10 │ "2016-06-01T00:00:00" │ "2017-06-01T00:00:00" │ 303 │ 52.8 │ 
│ 11 │ "2016-07-01T00:00:00" │ "2017-07-01T00:00:00" │ 301 │ 59.1 │ 
│ 12 │ "2016-08-01T00:00:00" │ "2017-08-01T00:00:00" │ 273 │ 54.6 │ 

です...!

関連する問題