File tree 1 file changed +10
-10
lines changed
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:
397
397
# In this case, we remap the new codes to the original level:
398
398
repeater = self .removed_level_full .get_indexer (self .removed_level )
399
399
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 )
403
405
else :
404
406
# Otherwise, we just use each level item exactly once:
405
407
stride = len (self .removed_level ) + self .lift
406
408
if self .sort or not self .lift :
407
- repeater = np .arange (stride ) - self . lift
409
+ repeater = np .arange (stride )
408
410
else :
409
- # move the -1 to the position at na_index
410
411
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
416
416
417
417
return repeater
418
418
You can’t perform that action at this time.
0 commit comments