using DataFrames
df = DataFrame(A = 1:10, B = 2:2:20)
10x2 DataFrame
| Row | A | B |
|-----|----|----|
| 1 | 1 | 2 |
| 2 | 2 | 4 |
| 3 | 3 | 6 |
| 4 | 4 | 8 |
| 5 | 5 | 10 |
...
...
是否可以使用值列表来对数据帧进行子集化,例如
df[df[:A] .in [3,4], :]
如果列表很小,这可以通过
来完成df[(df[:A] .== 3) | (df[:A] .== 4), :]
但我想知道是否有办法对大量值执行此操作
最佳答案
上面接受的答案不再有效。 以下是 2019 年的一些工作:
# by column name
julia> df[ [x in [3,4] for x in df[:A]] ,:]
2×2 DataFrame
│ Row │ A │ B │
│ │ Int64 │ Int64 │
├─────┼───────┼───────┤
│ 1 │ 3 │ 6 │
│ 2 │ 4 │ 8 │
# or by column number
julia> df[ [x in [3,4] for x in df[:1]] ,:]
2×2 DataFrame
│ Row │ A │ B │
│ │ Int64 │ Int64 │
├─────┼───────┼───────┤
│ 1 │ 3 │ 6 │
│ 2 │ 4 │ 8 │
关于dataframe - julia dataframe - 按值列表对列进行子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34271850/