julia dataframe-按值列表对列进行子集设置
是否可以使用值列表来对dataframe进行子集划分,例如julia dataframe-按值列表对列进行子集设置,dataframe,subset,julia,data-manipulation,Dataframe,Subset,Julia,Data Manipulation,是否可以使用值列表来对dataframe进行子集划分,例如 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
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年的工作情况如下:
julia> df = DataFrame(x = 1:3:30, y = [2, 1, 2,1,3,4,5,3,3,3])
10x2 DataFrames.DataFrame
| Row | x | y |
|-----|----|---|
| 1 | 1 | 2 |
| 2 | 4 | 1 |
| 3 | 7 | 2 |
| 4 | 10 | 1 |
| 5 | 13 | 3 |
| 6 | 16 | 4 |
| 7 | 19 | 5 |
| 8 | 22 | 3 |
| 9 | 25 | 3 |
| 10 | 28 | 3 |
julia> df[findin(df[:y],[1,3]),:]
6x2 DataFrames.DataFrame
| Row | x | y |
|-----|----|---|
| 1 | 4 | 1 |
| 2 | 10 | 1 |
| 3 | 13 | 3 |
| 4 | 22 | 3 |
| 5 | 25 | 3 |
| 6 | 28 | 3 |
df[[x in[3,4]对于df[:A]]中的x,可能的重复项:]
是一个等效项。易于适应其他集合和条件。Matt B的矢量函数非常有用,对于新用户来说,双数组理解不是很直观。我认为应该将其添加到Base中。ERROR:UndefVarError:findin未定义
# 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 │