julia DataFrame.jl取符合条件的行号

有一个dataframe,我现在想取出他符合要求条件的行号,

using DataFrames
df = DataFrame(A=1:2:1000, B=repeat(1:10, inner=50), C=1:500)
500×3 DataFrame
 Row │ A      B      C
     │ Int64  Int64  Int64
─────┼─────────────────────
   1 │     1      1      1
   2 │     3      1      2
   3 │     5      1      3
   4 │     7      1      4
   5 │     9      1      5
   6 │    11      1      6
   7 │    13      1      7
   8 │    15      1      8
  ⋮  │   ⋮      ⋮      ⋮
 494 │   987     10    494
 495 │   989     10    495
 496 │   991     10    496
 497 │   993     10    497
 498 │   995     10    498
 499 │   997     10    499
 500 │   999     10    500
           485 rows omitted

用filter的话只能把整个dataframe取出来,而不是索引

julia> filter(row->row.A<9,df)
4×3 DataFrame
 Row │ A      B      C
     │ Int64  Int64  Int64
─────┼─────────────────────
   1 │     1      1      1
   2 │     3      1      2
   3 │     5      1      3
   4 │     7      1      4

我现在要想取出第一列小于9的行号,要用哪个函数呢?把每行的索引返回到vector中

julia> findall(df[!,:A].<9)
4-element Vector{Int64}:
 1
 2
 3
 4

2 个赞