@@ -658,7 +658,7 @@ def _aggregate_series_fast(self, obj: Series, func):
658
658
group_index , _ , ngroups = self .group_info
659
659
660
660
# avoids object / Series creation overhead
661
- dummy = obj ._get_values ( slice ( None , 0 ))
661
+ dummy = obj .iloc [: 0 ]
662
662
indexer = get_group_index_sorter (group_index , ngroups )
663
663
obj = obj .take (indexer )
664
664
group_index = algorithms .take_nd (group_index , indexer , allow_fill = False )
@@ -780,7 +780,11 @@ def get_iterator(self, data: FrameOrSeries, axis: int = 0):
780
780
Generator yielding sequence of (name, subsetted object)
781
781
for each group
782
782
"""
783
- slicer = lambda start , edge : data ._slice (slice (start , edge ), axis = axis )
783
+ if axis == 0 :
784
+ slicer = lambda start , edge : data .iloc [start :edge ]
785
+ else :
786
+ slicer = lambda start , edge : data .iloc [:, start :edge ]
787
+
784
788
length = len (data .axes [axis ])
785
789
786
790
start = 0
@@ -919,7 +923,7 @@ def _chop(self, sdata, slice_obj: slice) -> NDFrame:
919
923
920
924
class SeriesSplitter (DataSplitter ):
921
925
def _chop (self , sdata : Series , slice_obj : slice ) -> Series :
922
- return sdata ._get_values ( slice_obj )
926
+ return sdata .iloc [ slice_obj ]
923
927
924
928
925
929
class FrameSplitter (DataSplitter ):
@@ -934,7 +938,7 @@ def _chop(self, sdata: DataFrame, slice_obj: slice) -> DataFrame:
934
938
if self .axis == 0 :
935
939
return sdata .iloc [slice_obj ]
936
940
else :
937
- return sdata ._slice ( slice_obj , axis = 1 )
941
+ return sdata .iloc [:, slice_obj ]
938
942
939
943
940
944
def get_splitter (data : FrameOrSeries , * args , ** kwargs ) -> DataSplitter :
0 commit comments