This is rather DataFrame-centric. The whole purpose of iterating over columns is to give `array_equivalent` a chance to operate on non-object arrays. It is based on the premise that `self.values` is often an object array. 

However, if `self` is a Panel, then  `self[col]` is a DataFrame, and so this code is passing whole DataFrame.values to `array_equivalent`. It works, but it is not what I intended, and it might be slow if DataFrame.values is an object array.