我对 Julia 比较陌生 - 我想知道如何根据条件、eq、平均值大于 0 的所有列来选择 DataFrames.jl 中的某些列。
基于按列条件选择列的一种方法是使用 将该条件映射到列上eachcol,然后使用生成的 Bool 数组作为 DataFrame 上的列选择器:
julia> using DataFrames, Statistics\n\njulia> df = DataFrame(a=randn(10), b=randn(10) .- 1, c=randn(10) .+ 1, d=randn(10))\n10\xc3\x974 DataFrame\n Row \xe2\x94\x82 a b c d \n \xe2\x94\x82 Float64 Float64 Float64 Float64 \n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n 1 \xe2\x94\x82 -1.05612 -2.01901 1.99614 -2.08048\n 2 \xe2\x94\x82 -0.37359 0.00750529 2.11529 1.93699\n 3 \xe2\x94\x82 -1.15199 -0.812506 -0.721653 -0.286076\n 4 \xe2\x94\x82 0.992366 -2.05898 0.474682 -0.210283\n 5 \xe2\x94\x82 0.206846 -0.922274 1.87723 -0.403679\n 6 \xe2\x94\x82 -1.01923 -1.4401 -0.0769749 0.0557395\n 7 \xe2\x94\x82 1.99409 -0.463743 1.83163 -0.585677\n 8 \xe2\x94\x82 2.21445 0.658119 2.33056 -1.01474\n 9 \xe2\x94\x82 0.918917 -0.371214 1.76301 -0.234561\n 10 \xe2\x94\x82 -0.839345 -1.09017 1.38716 -2.82545\n\njulia> f(x) = mean(x) > 0\nf (generic function with 1 method)\n\njulia> df[:, map(f, eachcol(df))]\n10\xc3\x972 DataFrame\n Row \xe2\x94\x82 a c \n \xe2\x94\x82 Float64 Float64 \n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n 1 \xe2\x94\x82 -1.05612 1.99614\n 2 \xe2\x94\x82 -0.37359 2.11529\n 3 \xe2\x94\x82 -1.15199 -0.721653\n 4 \xe2\x94\x82 0.992366 0.474682\n 5 \xe2\x94\x82 0.206846 1.87723\n 6 \xe2\x94\x82 -1.01923 -0.0769749\n 7 \xe2\x94\x82 1.99409 1.83163\n 8 \xe2\x94\x82 2.21445 2.33056\n 9 \xe2\x94\x82 0.918917 1.76301\n 10 \xe2\x94\x82 -0.839345 1.38716\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
466 次 |
| 最近记录: |