When the info axis is not unique, the only way I know of to iterate through the items in the NDFrame is to use `_data.iget`. This returns an ndarray, not a lower dimensional NDFrame. So I can't call the equals method recursively. Therefore I'm bailing out and just calling array_equivalent on the ndarrays. This might be slow performance (if the ndarray is of object dtype), but that appears to be the price the user will pay for having non-unique axes labels.