@@ -1970,11 +1970,6 @@ def get_indexer(self, target, method=None, limit=None, tolerance=None):
1970
1970
raise NotImplementedError ("method='nearest' not implemented yet "
1971
1971
'for MultiIndex; see GitHub issue 9365' )
1972
1972
else :
1973
- # we may not compare equally because of hashing if we
1974
- # don't have the same dtypes
1975
- if self ._inferred_type_levels != target ._inferred_type_levels :
1976
- return Index (self .values ).get_indexer (target .values )
1977
-
1978
1973
indexer = self ._engine .get_indexer (target )
1979
1974
1980
1975
return _ensure_platform_int (indexer )
@@ -2211,17 +2206,6 @@ def _maybe_to_slice(loc):
2211
2206
'' .format (keylen , self .nlevels ))
2212
2207
2213
2208
if keylen == self .nlevels and self .is_unique :
2214
-
2215
- def _maybe_str_to_time_stamp (key , lev ):
2216
- if lev .is_all_dates and not isinstance (key , Timestamp ):
2217
- try :
2218
- return Timestamp (key , tz = getattr (lev , 'tz' , None ))
2219
- except Exception :
2220
- pass
2221
- return key
2222
-
2223
- key = com ._values_from_object (key )
2224
- key = tuple (map (_maybe_str_to_time_stamp , key , self .levels ))
2225
2209
return self ._engine .get_loc (key )
2226
2210
2227
2211
# -- partial selection or non-unique index
@@ -2354,34 +2338,9 @@ def partial_selection(key, indexer=None):
2354
2338
return indexer , maybe_droplevels (indexer , ilevels ,
2355
2339
drop_level )
2356
2340
2357
- if len (key ) == self .nlevels :
2358
-
2359
- if self .is_unique :
2360
-
2361
- # here we have a completely specified key, but are
2362
- # using some partial string matching here
2363
- # GH4758
2364
- all_dates = ((l .is_all_dates and
2365
- not isinstance (k , compat .string_types ))
2366
- for k , l in zip (key , self .levels ))
2367
- can_index_exactly = any (all_dates )
2368
- if (any (l .is_all_dates
2369
- for k , l in zip (key , self .levels )) and
2370
- not can_index_exactly ):
2371
- indexer = self .get_loc (key )
2372
-
2373
- # we have a multiple selection here
2374
- if (not isinstance (indexer , slice ) or
2375
- indexer .stop - indexer .start != 1 ):
2376
- return partial_selection (key , indexer )
2377
-
2378
- key = tuple (self [indexer ].tolist ()[0 ])
2379
-
2380
- return (self ._engine .get_loc (
2381
- com ._values_from_object (key )), None )
2382
-
2383
- else :
2384
- return partial_selection (key )
2341
+ if len (key ) == self .nlevels and self .is_unique :
2342
+ # Complete key in unique index -> standard get_loc
2343
+ return (self ._engine .get_loc (key ), None )
2385
2344
else :
2386
2345
return partial_selection (key )
2387
2346
else :
0 commit comments