PERF/BUG: use masked algo in groupby cummin and cummax by mzeitlin11 · Pull Request #40651 · pandas-dev/pandas (original) (raw)

       before           after         ratio
     [3a973b6d]       [2fa80ad0]
     <master>         <perf/masked_cummin/max>
-        297±10ms          241±9ms     0.81  groupby.CumminMax.time_frame_transform('Float64', 'cummax')
-         284±6ms          240±7ms     0.85  groupby.CumminMax.time_frame_transform('Float64', 'cummin')
-        761±60ms          393±4ms     0.52  groupby.CumminMax.time_frame_transform('Int64', 'cummax')
-        753±50ms          390±3ms     0.52  groupby.CumminMax.time_frame_transform('Int64', 'cummin')
         481±20ms         474±10ms     0.99  groupby.CumminMax.time_frame_transform('float64', 'cummax')
         461±10ms         459±10ms     1.00  groupby.CumminMax.time_frame_transform('float64', 'cummin')
         706±40ms         732±50ms     1.04  groupby.CumminMax.time_frame_transform('int64', 'cummax')
         730±20ms         674±20ms     0.92  groupby.CumminMax.time_frame_transform('int64', 'cummin')
-        685±30ms          214±5ms     0.31  groupby.CumminMax.time_frame_transform_many_nulls('Float64', 'cummax')
-        698±20ms          225±4ms     0.32  groupby.CumminMax.time_frame_transform_many_nulls('Float64', 'cummin')
-        811±50ms          204±6ms     0.25  groupby.CumminMax.time_frame_transform_many_nulls('Int64', 'cummax')
-        804±50ms          207±6ms     0.26  groupby.CumminMax.time_frame_transform_many_nulls('Int64', 'cummin')
         444±20ms          447±4ms     1.01  groupby.CumminMax.time_frame_transform_many_nulls('float64', 'cummax')
         447±20ms         459±20ms     1.03  groupby.CumminMax.time_frame_transform_many_nulls('float64', 'cummin')
        1.41±0.1s       1.33±0.01s     0.94  groupby.CumminMax.time_frame_transform_many_nulls('int64', 'cummax')
       1.41±0.09s          1.33±0s     0.94  groupby.CumminMax.time_frame_transform_many_nulls('int64', 'cummin')