My guess is that no one ever bothered to define hash(nan), which should, IMHO, be nan.
nan isn't anything. It's an early attempt at None when no/few (common) languages had that concept.
That python allows nan as an index is just so many kinds of buggy.