@@ -169,7 +169,7 @@ def apply(self, f, data: FrameOrSeries, axis: int = 0):
169169 and not sdata .index ._has_complex_internals
170170 ):
171171 try :
172- result_values , mutated = splitter .fast_apply (f , group_keys )
172+ result_values , mutated = splitter .fast_apply (f , sdata , group_keys )
173173
174174 except libreduction .InvalidApply as err :
175175 # This Exception is raised if `f` triggers an exception
@@ -925,11 +925,9 @@ def _chop(self, sdata: Series, slice_obj: slice) -> Series:
925925
926926
927927class FrameSplitter (DataSplitter ):
928- def fast_apply (self , f , names ):
928+ def fast_apply (self , f , sdata : FrameOrSeries , names ):
929929 # must return keys::list, values::list, mutated::bool
930930 starts , ends = lib .generate_slices (self .slabels , self .ngroups )
931-
932- sdata = self ._get_sorted_data ()
933931 return libreduction .apply_frame_axis0 (sdata , f , names , starts , ends )
934932
935933 def _chop (self , sdata : DataFrame , slice_obj : slice ) -> DataFrame :
@@ -939,11 +937,13 @@ def _chop(self, sdata: DataFrame, slice_obj: slice) -> DataFrame:
939937 return sdata .iloc [:, slice_obj ]
940938
941939
942- def get_splitter (data : FrameOrSeries , * args , ** kwargs ) -> DataSplitter :
940+ def get_splitter (
941+ data : FrameOrSeries , labels : np .ndarray , ngroups : int , axis : int = 0
942+ ) -> DataSplitter :
943943 if isinstance (data , Series ):
944944 klass : Type [DataSplitter ] = SeriesSplitter
945945 else :
946946 # i.e. DataFrame
947947 klass = FrameSplitter
948948
949- return klass (data , * args , ** kwargs )
949+ return klass (data , labels , ngroups , axis )
0 commit comments