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')