@@ -658,16 +658,7 @@ def _get_setitem_indexer(self, key):
658
658
if isinstance (key , range ):
659
659
return list (key )
660
660
661
- try :
662
- return self ._convert_to_indexer (key , axis = 0 , is_setter = True )
663
- except TypeError as e :
664
-
665
- # invalid indexer type vs 'other' indexing errors
666
- if "cannot do" in str (e ):
667
- raise
668
- elif "unhashable type" in str (e ):
669
- raise
670
- raise IndexingError (key ) from e
661
+ return self ._convert_to_indexer (key , axis = 0 , is_setter = True )
671
662
672
663
def _ensure_listlike_indexer (self , key , axis = None , value = None ):
673
664
"""
@@ -1209,7 +1200,7 @@ def _convert_to_indexer(self, key, axis: int, is_setter: bool = False):
1209
1200
is_int_index = labels .is_integer ()
1210
1201
is_int_positional = is_integer (key ) and not is_int_index
1211
1202
1212
- if is_scalar (key ) or isinstance (labels , MultiIndex ):
1203
+ if is_scalar (key ) or ( isinstance (labels , MultiIndex ) and is_hashable ( key ) ):
1213
1204
# Otherwise get_loc will raise InvalidIndexError
1214
1205
1215
1206
# if we are a label return me
@@ -1224,8 +1215,6 @@ def _convert_to_indexer(self, key, axis: int, is_setter: bool = False):
1224
1215
# GH35015, using datetime as column indices raises exception
1225
1216
if not isinstance (labels , MultiIndex ):
1226
1217
raise
1227
- except TypeError :
1228
- pass
1229
1218
except ValueError :
1230
1219
if not is_int_positional :
1231
1220
raise
0 commit comments