File tree 2 files changed +9
-6
lines changed
2 files changed +9
-6
lines changed Original file line number Diff line number Diff line change @@ -148,7 +148,7 @@ Performance improvements
148
148
- Performance improvement for :meth: `MultiIndex.intersection ` (:issue: `48604 `)
149
149
- Performance improvement in ``var `` for nullable dtypes (:issue: `48379 `).
150
150
- Performance improvement to :func: `read_sas ` with ``blank_missing=True `` (:issue: `48502 `)
151
- -
151
+ - Memory improvement in :meth: ` RangeIndex.sort_values ` ( :issue: ` 48801 `)
152
152
153
153
.. ---------------------------------------------------------------------------
154
154
.. _whatsnew_160.bug_fixes :
Original file line number Diff line number Diff line change @@ -554,8 +554,6 @@ def sort_values(
554
554
na_position : str = "last" ,
555
555
key : Callable | None = None ,
556
556
):
557
- sorted_index = self
558
- indexer = RangeIndex (range (len (self )))
559
557
if key is not None :
560
558
return super ().sort_values (
561
559
return_indexer = return_indexer ,
@@ -565,17 +563,22 @@ def sort_values(
565
563
)
566
564
else :
567
565
sorted_index = self
566
+ inverse_indexer = False
568
567
if ascending :
569
568
if self .step < 0 :
570
569
sorted_index = self [::- 1 ]
571
- indexer = indexer [:: - 1 ]
570
+ inverse_indexer = True
572
571
else :
573
572
if self .step > 0 :
574
573
sorted_index = self [::- 1 ]
575
- indexer = indexer = indexer [:: - 1 ]
574
+ inverse_indexer = True
576
575
577
576
if return_indexer :
578
- return sorted_index , indexer
577
+ if inverse_indexer :
578
+ rng = range (len (self ) - 1 , - 1 , - 1 )
579
+ else :
580
+ rng = range (len (self ))
581
+ return sorted_index , RangeIndex (rng )
579
582
else :
580
583
return sorted_index
581
584
You can’t perform that action at this time.
0 commit comments