The problem cames because that syntax is depredated from a time.
The solution is:
setosa_df = iris[iris[:, :species] .== "setosa", :]
or
setosa_df = iris[iris[!, :species] .== "setosa", :]
You can indicate or iris[:, :species], in that case you are using a copy. Another option is iris[!, :species] if you want to use a view.
Also you can use the new syntax (from 0.21):
setosa_df = filter(:species => ==("setosa"), iris)
it is more different, but it is a bit more readable in my opinion.