在数据框df
中有:a
和:b
列,如何获取列:a
中的所有元素,例如b = 0.5
?
可以单独使用DataFrames
还是需要meta包?
答案 0 :(得分:1)
df[df.b .== 5, :]
示例
julia> df = DataFrame(a=11:17, b=vcat([5,5],1:5))
7×2 DataFrame
│ Row │ a │ b │
│ │ Int64 │ Int64 │
├─────┼───────┼───────┤
│ 1 │ 11 │ 5 │
│ 2 │ 12 │ 5 │
│ 3 │ 13 │ 1 │
│ 4 │ 14 │ 2 │
│ 5 │ 15 │ 3 │
│ 6 │ 16 │ 4 │
│ 7 │ 17 │ 5 │
julia> df[df.b .== 5, :]
3×2 DataFrame
│ Row │ a │ b │
│ │ Int64 │ Int64 │
├─────┼───────┼───────┤
│ 1 │ 11 │ 5 │
│ 2 │ 12 │ 5 │
│ 3 │ 17 │ 5 │
如果只需要列a
:
julia> df[df.b .== 5, :].a
3-element Array{Int64,1}:
11
12
17
另一种选择是将filter
与lambda函数一起使用(这会更快一些,并且使用更少的内存):
julia> filter(row -> row[:b] == 5, df)
3×2 DataFrame
│ Row │ a │ b │
│ │ Int64 │ Int64 │
├─────┼───────┼───────┤
│ 1 │ 11 │ 5 │
│ 2 │ 12 │ 5 │
│ 3 │ 17 │ 5 │