ENH/BUG: Use Kleene logic for groupby any/all by mzeitlin11 · Pull Request #40819 · pandas-dev/pandas (original) (raw)

before           after         ratio
     [3b4b193d]       [423f43fc]
     <master>         <enh/any_all_kleene>
          216±8ms          205±4ms     0.95  groupby.GroupByCythonAgg.time_frame_agg('float64', 'all')
          208±8ms          197±3ms     0.95  groupby.GroupByCythonAgg.time_frame_agg('float64', 'any')
         162±10μs          139±4μs    ~0.86  groupby.GroupByMethods.time_dtype_as_field('datetime', 'all', 'direct')
         161±20μs          138±9μs    ~0.86  groupby.GroupByMethods.time_dtype_as_field('datetime', 'all', 'transformation')
         159±10μs          142±5μs    ~0.90  groupby.GroupByMethods.time_dtype_as_field('datetime', 'any', 'direct')
         160±10μs          140±5μs    ~0.88  groupby.GroupByMethods.time_dtype_as_field('datetime', 'any', 'transformation')
          109±8μs         113±10μs     1.04  groupby.GroupByMethods.time_dtype_as_field('float', 'all', 'direct')
         103±10μs          109±9μs     1.06  groupby.GroupByMethods.time_dtype_as_field('float', 'all', 'transformation')
         113±20μs         132±10μs    ~1.17  groupby.GroupByMethods.time_dtype_as_field('float', 'any', 'direct')
         138±10μs         124±20μs    ~0.90  groupby.GroupByMethods.time_dtype_as_field('float', 'any', 'transformation')
          110±9μs          112±5μs     1.02  groupby.GroupByMethods.time_dtype_as_field('int', 'all', 'direct')
          115±9μs         109±10μs     0.94  groupby.GroupByMethods.time_dtype_as_field('int', 'all', 'transformation')
         123±10μs          115±7μs     0.94  groupby.GroupByMethods.time_dtype_as_field('int', 'any', 'direct')
         125±10μs          114±8μs     0.92  groupby.GroupByMethods.time_dtype_as_field('int', 'any', 'transformation')
         449±30μs         452±20μs     1.01  groupby.GroupByMethods.time_dtype_as_field('object', 'all', 'direct')
         442±30μs         445±20μs     1.01  groupby.GroupByMethods.time_dtype_as_field('object', 'all', 'transformation')
         470±10μs         455±30μs     0.97  groupby.GroupByMethods.time_dtype_as_field('object', 'any', 'direct')
         466±30μs          406±4μs    ~0.87  groupby.GroupByMethods.time_dtype_as_field('object', 'any', 'transformation')
          118±8μs          118±7μs     1.00  groupby.GroupByMethods.time_dtype_as_group('datetime', 'all', 'direct')
          134±9μs         132±20μs     0.99  groupby.GroupByMethods.time_dtype_as_group('datetime', 'all', 'transformation')
         131±20μs          115±9μs    ~0.88  groupby.GroupByMethods.time_dtype_as_group('datetime', 'any', 'direct')
         121±10μs          118±5μs     0.97  groupby.GroupByMethods.time_dtype_as_group('datetime', 'any', 'transformation')
         111±10μs          111±4μs     1.00  groupby.GroupByMethods.time_dtype_as_group('float', 'all', 'direct')
         109±10μs         120±10μs    ~1.11  groupby.GroupByMethods.time_dtype_as_group('float', 'all', 'transformation')
          110±9μs         127±10μs    ~1.16  groupby.GroupByMethods.time_dtype_as_group('float', 'any', 'direct')
         112±10μs         122±10μs     1.09  groupby.GroupByMethods.time_dtype_as_group('float', 'any', 'transformation')
         130±10μs          115±6μs    ~0.89  groupby.GroupByMethods.time_dtype_as_group('int', 'all', 'direct')
          133±7μs          115±7μs    ~0.86  groupby.GroupByMethods.time_dtype_as_group('int', 'all', 'transformation')
          117±5μs         123±10μs     1.05  groupby.GroupByMethods.time_dtype_as_group('int', 'any', 'direct')
         133±10μs         118±20μs    ~0.89  groupby.GroupByMethods.time_dtype_as_group('int', 'any', 'transformation')
          107±9μs         122±10μs    ~1.14  groupby.GroupByMethods.time_dtype_as_group('object', 'all', 'direct')
         113±10μs          107±5μs     0.94  groupby.GroupByMethods.time_dtype_as_group('object', 'all', 'transformation')
         135±10μs          108±4μs    ~0.80  groupby.GroupByMethods.time_dtype_as_group('object', 'any', 'direct')
          114±6μs          105±2μs     0.92  groupby.GroupByMethods.time_dtype_as_group('object', 'any', 'transformation')