View and @view in DataFrames

This is expected behavior as in this expression dfv[dfv.b.>0, :] makes a copy first, of which you make a view.

While @view dfv[dfv.b.>0, :] does not make a copy, but just makes a view.

dfv = view(dfv[dfv.b.>0, :], :, :) should be dfv = view(view(dfv,dfv.b.>0, :), :, :) to make a view (actually then you can drop outer view call)