DataFrames
讀取csv 說明
先安裝 DataFrames http://juliastats.github.io/DataFrames.jl/stable/ 在julia終端機介面輸入下指令即可安裝
Pkg.add("DataFrames")
(如果顯示 INFO: Nothing to be done,代表已經安裝過) 完成DataFrames後,可以先試看看它的效果 DataFrame特點在於,會將資料儲存在記憶體後,再來進行計算 接著,可以試著建立CSV檔案,並且載入 載入時,如果只是純內容,則系統會自動配置欄位名稱 test.csv
1,2,3,a
2,3,4,b
1,3,3,a
3,4,2,b
5,2,4,a
2,1,1,b
5,2,3,a
6,4,3,c
載入結果
julia> check = readtable("try.csv")
7×4 DataFrames.DataFrame
│ Row │ x1 │ x2 │ x3 │ a │
├─────┼────┼────┼────┼─────┤
│ 1 │ 2 │ 3 │ 4 │ "b" │
│ 2 │ 1 │ 3 │ 3 │ "a" │
│ 3 │ 3 │ 4 │ 2 │ "b" │
│ 4 │ 5 │ 2 │ 4 │ "a" │
│ 5 │ 2 │ 1 │ 1 │ "b" │
│ 6 │ 5 │ 2 │ 3 │ "a" │
│ 7 │ 6 │ 4 │ 3 │ "c" │
如果需要自定義欄位,直接在第一欄輸入欄位名稱 try.csv
ID , Number1 , num2 , abc_name
1,2,3,a
2,3,4,b
1,3,3,a
3,4,2,b
5,2,4,a
2,1,1,b
5,2,3,a
6,4,3,c
載入結果
julia> check = readtable("try.csv")
8×4 DataFrames.DataFrame
│ Row │ ID │ Number1 │ num2 │ abc_name │
├─────┼────┼─────────┼──────┼──────────┤
│ 1 │ 1 │ 2 │ 3 │ "a" │
│ 2 │ 2 │ 3 │ 4 │ "b" │
│ 3 │ 1 │ 3 │ 3 │ "a" │
│ 4 │ 3 │ 4 │ 2 │ "b" │
│ 5 │ 5 │ 2 │ 4 │ "a" │
│ 6 │ 2 │ 1 │ 1 │ "b" │
│ 7 │ 5 │ 2 │ 3 │ "a" │
│ 8 │ 6 │ 4 │ 3 │ "c" │
載入DataFrames
第一次開始使用時,先載入 DataFrames
using DataFrames
讀取CSV
載入 test.csv,將資料存入記憶體
files = readtable("test.csv")
顯示及計算
一次讀取所有資料 (注意!資料量過大時,不要一次讀取所有檔案)
@show files
讀取第一欄所有資料,
@show iris[1]
對第二欄資料進行加總
sum(iris[2])
對第二欄資料進行平均
sum(iris[2])/lenth(iris[2])
groupby 群組 下方是原本的資料列
julia> iris
7×4 DataFrames.DataFrame
│ Row │ x1 │ x2 │ x3 │ a │
├─────┼────┼────┼────┼─────┤
│ 1 │ 2 │ 3 │ 4 │ "b" │
│ 2 │ 1 │ 3 │ 3 │ "a" │
│ 3 │ 3 │ 4 │ 2 │ "b" │
│ 4 │ 5 │ 2 │ 4 │ "a" │
│ 5 │ 2 │ 1 │ 1 │ "b" │
│ 6 │ 5 │ 2 │ 3 │ "a" │
│ 7 │ 6 │ 4 │ 3 │ "c" │
先進行 5 欄(欄位名稱為a) group_by
julia> iris_g = groupby(tring, [:a])
DataFrames.GroupedDataFrame 3 groups with keys: Symbol[:a]
First Group:
3×4 DataFrames.SubDataFrame{Array{Int64,1}}
│ Row │ x1 │ x2 │ x3 │ a │
├─────┼────┼────┼────┼─────┤
│ 1 │ 1 │ 3 │ 3 │ "a" │
│ 2 │ 5 │ 2 │ 4 │ "a" │
│ 3 │ 5 │ 2 │ 3 │ "a" │
⋮
Last Group:
1×4 DataFrames.SubDataFrame{Array{Int64,1}}
│ Row │ x1 │ x2 │ x3 │ a │
├─────┼────┼────┼────┼─────┤
│ 1 │ 6 │ 4 │ 3 │ "c" │
接下來可以用迴圈來針對三個group進行計算 例如,分別取得各group的第三欄位,並加總 定義ary為陣列
julia> ary = []
透過 append!將總和值加入陣列 append!(陣列,值) 也可以用 insert! insert!(陣列, 插入位置, 值)
julia> for row in iris_g
println("-----------")
println(row[3])
println(sum(row[3]))
ary = append!(ary,sum(row[3]))
end
//或者
julia> for row in iris_g
println("-----------")
println(row[3])
println(sum(row[3]))
ary = insert!(ary, length(ary)+1,sum(row[3]))
end
-----------
[3,4,3]
10
-----------
[4,2,1]
7
-----------
[3]
3
列印出陣列結果
julia> println(ary)
HTTPServe
https://github.com/JuliaWeb/HttpServer.jl 安裝
Pkg.add("HttpServer")
HttpServe.jl
using HttpServer
http = HttpHandler() do req::Request, res::Response
Response( ismatch(r"^/hello/",req.resource) ? string("Hello ", split(req.resource,'/')[3], "!") : 404 )
end
server = Server( http )
run( server, 8000 )
# or
run(server, host=IPv4(127,0,0,1), port=8000)
note http://pkg.julialang.org/ https://juliabyexample.helpmanual.io/ https://github.com/adon988/Julia.jl/blob/master/API.md#javascript
//http://juliawebstack.org/