File tree Expand file tree Collapse file tree 1 file changed +10
-10
lines changed
Expand file tree Collapse file tree 1 file changed +10
-10
lines changed Original file line number Diff line number Diff line change @@ -397,22 +397,22 @@ def _repeater(self) -> np.ndarray:
397397 # In this case, we remap the new codes to the original level:
398398 repeater = self .removed_level_full .get_indexer (self .removed_level )
399399 if self .lift :
400- na_index = (self .index .codes [self .level ] == - 1 ).nonzero ()[0 ][0 ]
401- repeater = np .insert (repeater , na_index , - 1 )
402-
400+ if not self .sort :
401+ na_index = (self .index .codes [self .level ] == - 1 ).nonzero ()[0 ][0 ]
402+ repeater = np .insert (repeater , na_index , - 1 )
403+ else :
404+ repeater = np .insert (repeater , 0 , - 1 )
403405 else :
404406 # Otherwise, we just use each level item exactly once:
405407 stride = len (self .removed_level ) + self .lift
406408 if self .sort or not self .lift :
407- repeater = np .arange (stride ) - self . lift
409+ repeater = np .arange (stride )
408410 else :
409- # move the -1 to the position at na_index
410411 na_index = (self .index .codes [self .level ] == - 1 ).nonzero ()[0 ][0 ]
411- repeater = np .arange (stride )
412- if na_index :
413- repeater [na_index ] = - 1
414- if (na_index + 1 ) < len (repeater ):
415- repeater [na_index + 1 :] -= 1
412+ repeater = np .arange (stride ) - self .lift
413+ if self .na :
414+ repeater [self .na ] = - 1
415+ repeater [: self .na ] += 1
416416
417417 return repeater
418418
You can’t perform that action at this time.
0 commit comments