@@ -2581,29 +2581,29 @@ def _get_values_for_loc(self, series: Series, loc, key):
2581
2581
new_ser = series ._constructor (new_values , index = new_index , name = series .name )
2582
2582
return new_ser .__finalize__ (series )
2583
2583
2584
- def _convert_listlike_indexer (self , keyarr ):
2584
+ def _convert_listlike_indexer (self , keyarr ) -> np . ndarray | None :
2585
2585
"""
2586
+ Analogous to get_indexer when we are partial-indexing on our first level.
2587
+
2586
2588
Parameters
2587
2589
----------
2588
- keyarr : list-like
2590
+ keyarr : Index, np.ndarray, or ExtensionArray
2589
2591
Indexer to convert.
2590
2592
2591
2593
Returns
2592
2594
-------
2593
- tuple (indexer, keyarr)
2594
- indexer is an ndarray or None if cannot convert
2595
- keyarr are tuple-safe keys
2595
+ np.ndarray[intp] or None
2596
2596
"""
2597
- indexer , keyarr = super (). _convert_listlike_indexer ( keyarr )
2597
+ indexer = None
2598
2598
2599
2599
# are we indexing a specific level
2600
- if indexer is None and len (keyarr ) and not isinstance (keyarr [0 ], tuple ):
2601
- level = 0
2602
- _ , indexer = self .reindex (keyarr , level = level )
2600
+ if len (keyarr ) and not isinstance (keyarr [0 ], tuple ):
2601
+ _ , indexer = self .reindex (keyarr , level = 0 )
2603
2602
2604
2603
# take all
2605
2604
if indexer is None :
2606
- indexer = np .arange (len (self ))
2605
+ indexer = np .arange (len (self ), dtype = np .intp )
2606
+ return indexer
2607
2607
2608
2608
check = self .levels [0 ].get_indexer (keyarr )
2609
2609
mask = check == - 1
@@ -2614,7 +2614,7 @@ def _convert_listlike_indexer(self, keyarr):
2614
2614
# actually in Index anymore
2615
2615
raise KeyError (f"{ keyarr } not in index" )
2616
2616
2617
- return indexer , keyarr
2617
+ return indexer
2618
2618
2619
2619
def _get_partial_string_timestamp_match_key (self , key ):
2620
2620
"""
0 commit comments