The issue is that DataFrames has no way of knowing that there is only one oversvation with df.receiverid == "001bc509408200f6", so it returns an array with one element rather than a scalar. To not have this behavior would lead to type instability.
One way to get a scalar return is by using findfirst, which will give you the index of the first row for which df.receiverid == "001bc509408200f6" is true.