Dealing with NaN's

Using filter, you could write something like this:

julia> df = DataFrame(x=rand(10), y=rand((1, 2, NaN), 10).*rand(10))
10×2 DataFrame
 Row │ x         y          
     │ Float64   Float64    
─────┼──────────────────────
   1 │ 0.214967    0.955162
   2 │ 0.717033  NaN
   3 │ 0.313037  NaN
   4 │ 0.925829    0.876826
   5 │ 0.77564     0.466991
   6 │ 0.524314    0.50265
   7 │ 0.564011  NaN
   8 │ 0.495634    0.611079
   9 │ 0.366369    0.761782
  10 │ 0.949455    1.41635
julia> filter(:y => !isnan, df)
7×2 DataFrame
 Row │ x         y        
     │ Float64   Float64  
─────┼────────────────────
   1 │ 0.214967  0.955162
   2 │ 0.925829  0.876826
   3 │ 0.77564   0.466991
   4 │ 0.524314  0.50265
   5 │ 0.495634  0.611079
   6 │ 0.366369  0.761782
   7 │ 0.949455  1.41635

This creates a new DataFrame. If instead you want to delete the rows in the original DataFrame, you can use delete!, for example like so:

julia> delete!(df, isnan.(df.y))
7×2 DataFrame
 Row │ x         y        
     │ Float64   Float64  
─────┼────────────────────
   1 │ 0.214967  0.955162
   2 │ 0.925829  0.876826
   3 │ 0.77564   0.466991
   4 │ 0.524314  0.50265
   5 │ 0.495634  0.611079
   6 │ 0.366369  0.761782
   7 │ 0.949455  1.41635
7 Likes