API: avoid silent consolidation
State: closed

- [ ] closes #xxxx (Replace xxxx with the GitHub issue number)
- [ ] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [ ] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [ ] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.


Labels:
name: Internals
description: Related to non-user accessible pandas implementation

Comments:
We take a pretty big hit in `replace`, smaller hit in `_take` and `reindex(index=...)`, and improve in `values` and `reindex(columns=...)`

```
import pandas as pd
df = pd.DataFrame({i: range(100) for i in range(100)}, copy=False)

%timeit obj = df.copy(deep=False); res = obj.replace(4, 5)
855 µs ± 18.3 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)  # <- main
4.39 ms ± 25.7 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)   # <- PR

%timeit obj = df.copy(deep=False); res = obj._take([0, 1])
797 µs ± 16.9 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)  # <- main
1.99 ms ± 60.8 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each) # <- PR

%timeit obj = df.copy(deep=False); res = obj.values
711 µs ± 12 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)    # <- main
334 µs ± 3.56 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)  # <- PR

%timeit obj = df.copy(deep=False); res = obj.reindex(columns=obj.columns[:5])
861 µs ± 16.8 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)  # <- main
414 µs ± 17.4 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)  # <- PR

%timeit obj = df.copy(deep=False); res = obj.reindex(index=obj.index[:5])
819 µs ± 5.02 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)  # <- main
2.11 ms ± 100 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)  # <- PR

```
@jreback thoughts on the above performance impact of not silently consolidating?
@jbrockmendel can u run the above again with a much larger number of rows to see how this amortizes
With a million rows this is faster across the board:

```
import pandas as pd
df = pd.DataFrame({i: range(10**6) for i in range(100)}, copy=False)

%timeit obj = df.copy(deep=False); res = obj.replace(4, 5)
1.49 s ± 32.8 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)  # <- main
506 ms ± 13.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)  # <- PR

%timeit obj = df.copy(deep=False); res = obj._take([0, 1])
895 ms ± 26.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)  # <- main
1.91 ms ± 30.1 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)  # <- PR

%timeit obj = df.copy(deep=False); res = obj.values
844 ms ± 14.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)  # <- main
434 ms ± 12.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)  # <- PR

%timeit obj = df.copy(deep=False); res = obj.reindex(columns=obj.columns[:5])
845 ms ± 17.3 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)  # <- main
19.6 ms ± 210 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

%timeit obj = df.copy(deep=False); res = obj.reindex(index=obj.index[:5])
877 ms ± 21.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)  # <- main
2.01 ms ± 27.4 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)  # <- PR
```
+1 then

i suppose should run a full asv just to see where it is slower (likely a concat or similar)
I don't for the life of me understand how many of these benchmarks are affected...

```
       before           after         ratio
     [606499dd]       [d22e4b41]
+         456±9μs       2.81±0.2ms     6.15  groupby.Categories.time_groupby_ordered_sort
+        457±10μs      2.72±0.02ms     5.95  groupby.Categories.time_groupby_sort
+        465±40μs      2.73±0.04ms     5.87  groupby.Categories.time_groupby_extra_cat_sort
+      9.75±0.1μs       32.6±0.2μs     3.34  ctors.SeriesDtypesConstructors.time_dtindex_from_index_with_series
+      7.57±0.1ms         17.1±1ms     2.26  groupby.Nth.time_series_nth_all('float64')
+      7.67±0.3ms       16.4±0.4ms     2.13  groupby.Nth.time_series_nth_all('float32')
+      24.6±0.2μs         52.0±1μs     2.11  categoricals.IsMonotonic.time_categorical_series_is_monotonic_increasing
+      7.76±0.3ms       16.2±0.9ms     2.09  groupby.Nth.time_series_nth_all('datetime')
+      7.66±0.2ms       16.0±0.4ms     2.08  groupby.Nth.time_series_nth_any('float64')
+      9.29±0.1ms       19.2±0.5ms     2.07  ≈.time_frame_nth_any('datetime')
+      8.04±0.2ms       16.5±0.6ms     2.06  groupby.Nth.time_series_nth_any('datetime')
+      7.76±0.1ms       15.9±0.4ms     2.05  groupby.Nth.time_series_nth_any('float32')
+      9.31±0.3ms       18.8±0.7ms     2.02  groupby.Nth.time_frame_nth_any('float64')
+      25.3±0.7μs       51.0±0.8μs     2.02  categoricals.IsMonotonic.time_categorical_series_is_monotonic_decreasing
+      9.68±0.3ms       19.2±0.2ms     1.99  groupby.Nth.time_frame_nth_any('float32')
+      10.6±0.1ms         20.5±1ms     1.93  groupby.Nth.time_series_nth_any('object')
+      10.9±0.2ms       20.6±0.6ms     1.89  groupby.Nth.time_series_nth_all('object')
+      7.81±0.3ms       14.6±0.5ms     1.87  groupby.Nth.time_groupby_nth_all('datetime')
+      8.22±0.1ms       15.1±0.5ms     1.84  groupby.Nth.time_groupby_nth_all('float32')
+     2.41±0.06ms      4.41±0.09ms     1.83  groupby.Categories.time_groupby_extra_cat_nosort
+      8.79±0.1ms       15.0±0.3ms     1.70  groupby.Nth.time_groupby_nth_all('float64')
+     2.97±0.04ms       4.80±0.1ms     1.62  groupby.Categories.time_groupby_nosort
+      3.06±0.1ms      4.58±0.03ms     1.50  groupby.Categories.time_groupby_ordered_nosort
+      18.2±0.2ms         26.1±1ms     1.43  groupby.Nth.time_groupby_nth_all('object')
+        71.2±1μs        98.3±10μs     1.38  groupby.GroupByMethods.time_dtype_as_field('int16', 'all', 'direct', 5)
+         258±6μs          353±2μs     1.37  frame_methods.Quantile.time_frame_quantile(0)
+       126±0.7μs         172±30μs     1.37  groupby.GroupByMethods.time_dtype_as_field('uint', 'first', 'direct', 5)
+        286±10μs         384±20μs     1.34  categoricals.Constructor.time_interval
+      14.6±0.3ms       19.5±0.4ms     1.34  inference.ToDatetimeFormat.time_different_offset
+         101±1μs         136±20μs     1.34  groupby.GroupByMethods.time_dtype_as_field('float', 'min', 'direct', 1)
+         108±3μs         145±20μs     1.33  groupby.GroupByMethods.time_dtype_as_field('int', 'sum', 'direct', 1)
+      68.2±0.5μs        90.9±10μs     1.33  groupby.GroupByMethods.time_dtype_as_field('datetime', 'count', 'direct', 5)
+        88.8±1μs          118±2μs     1.33  groupby.GroupByMethods.time_dtype_as_field('datetime', 'any', 'direct', 1)
+         480±4μs         633±70μs     1.32  timeseries.DatetimeIndex.time_unique('repeated')
+        61.0±1μs         80.2±9μs     1.31  groupby.GroupByMethods.time_dtype_as_group('datetime', 'all', 'direct', 1)
+       925±200μs      1.21±0.02ms     1.31  categoricals.Constructor.time_datetimes_with_nat
+      86.2±0.5μs          113±1μs     1.31  groupby.GroupByMethods.time_dtype_as_group('int', 'count', 'direct', 5)
+        79.0±1μs         103±20μs     1.30  groupby.GroupByMethods.time_dtype_as_group('int16', 'cumprod', 'direct', 1)
+      65.5±0.9μs        85.1±10μs     1.30  groupby.GroupByMethods.time_dtype_as_field('uint', 'count', 'direct', 5)
+         108±2μs         140±20μs     1.30  groupby.GroupByMethods.time_dtype_as_field('int', 'prod', 'direct', 1)
+        98.7±3μs         128±20μs     1.29  groupby.GroupByMethods.time_dtype_as_field('float', 'sum', 'direct', 1)
+      85.1±0.4μs         110±20μs     1.29  groupby.GroupByMethods.time_dtype_as_field('datetime', 'head', 'direct', 1)
+        62.1±3μs         80.2±6μs     1.29  groupby.GroupByMethods.time_dtype_as_group('datetime', 'any', 'direct', 1)
+         102±2μs         132±20μs     1.29  groupby.GroupByMethods.time_dtype_as_field('datetime', 'any', 'direct', 5)
+         120±3μs         155±20μs     1.29  groupby.GroupByMethods.time_dtype_as_field('datetime', 'min', 'direct', 1)
+      16.6±0.3ms       21.4±0.8ms     1.29  categoricals.Constructor.time_regular
+         165±3μs         212±30μs     1.28  groupby.GroupByMethods.time_dtype_as_field('datetime', 'cumcount', 'direct', 5)
+     4.02±0.06ms         5.14±1ms     1.28  timeseries.AsOf.time_asof('DataFrame')
+        62.0±2μs        78.9±10μs     1.27  groupby.GroupByMethods.time_dtype_as_field('int16', 'all', 'direct', 1)
+       109±0.5μs         138±20μs     1.27  groupby.GroupByMethods.time_dtype_as_field('int', 'tail', 'direct', 5)
+      46.3±0.4μs         58.4±2μs     1.26  series_methods.ToFrame.time_to_frame('category', 'foo')
+      77.8±0.8μs        98.0±10μs     1.26  groupby.GroupByMethods.time_dtype_as_field('uint', 'cumsum', 'direct', 5)
+        61.5±2ms         77.2±6ms     1.26  io.parsers.DoesStringLookLikeDatetime.time_check_datetimes('10000')
+        98.4±2μs         123±20μs     1.25  groupby.GroupByMethods.time_dtype_as_field('datetime', 'cummin', 'direct', 1)
+         314±6μs         393±50μs     1.25  groupby.GroupByMethods.time_dtype_as_field('int', 'sem', 'direct', 1)
+         125±3μs         156±20μs     1.25  groupby.GroupByMethods.time_dtype_as_field('datetime', 'tail', 'direct', 1)
+         114±3μs          142±7μs     1.25  groupby.GroupByMethods.time_dtype_as_group('datetime', 'last', 'direct', 1)
+         372±6μs         464±20μs     1.25  groupby.Datelike.time_sum('date_range_tz')
+        38.4±1ms       47.8±0.7ms     1.24  categoricals.Constructor.time_all_nan
+         117±1μs          146±5μs     1.24  groupby.GroupByMethods.time_dtype_as_field('object', 'tail', 'direct', 5)
+         107±3μs         133±20μs     1.24  groupby.GroupByMethods.time_dtype_as_field('int', 'tail', 'direct', 1)
+         112±2μs         138±20μs     1.24  groupby.GroupByMethods.time_dtype_as_group('object', 'head', 'direct', 5)
+      13.7±0.3ms       17.0±0.2ms     1.23  algorithms.Factorize.time_factorize(False, True, 'datetime64[ns, tz]')
+         159±1μs          195±8μs     1.23  inference.ToDatetimeCacheSmallCount.time_unique_date_strings(False, 50)
+        65.2±1μs         80.4±2μs     1.23  groupby.GroupByMethods.time_dtype_as_field('int', 'std', 'direct', 1)
+        67.4±1μs         83.0±2μs     1.23  groupby.GroupByMethods.time_dtype_as_group('int', 'std', 'direct', 1)
+      74.7±0.9μs         91.9±3μs     1.23  groupby.GroupByMethods.time_dtype_as_field('uint', 'std', 'direct', 5)
+      46.3±0.7μs       56.9±0.8μs     1.23  series_methods.ToFrame.time_to_frame('int64', 'foo')
+      63.0±0.9μs       77.4±0.9μs     1.23  groupby.GroupByMethods.time_dtype_as_field('float', 'std', 'direct', 1)
+         102±2μs          125±8μs     1.23  groupby.GroupByMethods.time_dtype_as_field('float', 'mean', 'direct', 5)
+      46.9±0.7μs         57.5±2μs     1.23  series_methods.ToFrame.time_to_frame('Int64', 'foo')
+      6.86±0.1ms       8.40±0.2ms     1.22  groupby.Nth.time_frame_nth('object')
+         587±4μs         719±20μs     1.22  algorithms.Quantile.time_quantile(0, 'nearest', 'int')
+        82.9±3μs         101±10μs     1.22  groupby.GroupByMethods.time_dtype_as_field('int16', 'shift', 'direct', 5)
+         570±8μs         697±80μs     1.22  timedelta.TimedeltaIndexing.time_align
+      7.01±0.2ms       8.58±0.5ms     1.22  groupby.Nth.time_frame_nth('float32')
+       111±0.9μs          136±9μs     1.22  groupby.GroupByMethods.time_dtype_as_field('float', 'last', 'direct', 5)
+        79.1±1μs        96.7±10μs     1.22  groupby.GroupByMethods.time_dtype_as_field('uint', 'cummin', 'direct', 1)
+      56.0±0.2ms        68.3±10ms     1.22  io.parsers.DoesStringLookLikeDatetime.time_check_datetimes('2Q2005')
+         275±3μs         336±40μs     1.22  groupby.GroupByMethods.time_dtype_as_field('datetime', 'quantile', 'direct', 5)
+      16.9±0.2ms         20.6±1ms     1.22  timeseries.DatetimeAccessor.time_dt_accessor_date(None)
+         101±1μs         124±10μs     1.22  groupby.GroupByMethods.time_dtype_as_field('float', 'max', 'direct', 1)
+      70.6±0.7μs         86.1±3μs     1.22  groupby.GroupByMethods.time_dtype_as_field('uint', 'all', 'direct', 5)
+      16.9±0.1ms         20.6±1ms     1.22  timeseries.DatetimeAccessor.time_dt_accessor_date('UTC')
+        64.1±1μs       78.2±0.8μs     1.22  groupby.GroupByMethods.time_dtype_as_field('uint', 'std', 'direct', 1)
+         160±1μs          195±8μs     1.22  inference.ToDatetimeCacheSmallCount.time_unique_date_strings(True, 50)
+        68.0±1μs         82.8±2μs     1.22  groupby.GroupByMethods.time_dtype_as_group('uint', 'std', 'direct', 1)
+        47.5±1μs       57.8±0.8μs     1.22  series_methods.ToFrame.time_to_frame('datetime64[ns]', 'foo')
+         115±4μs          140±9μs     1.22  groupby.GroupByMethods.time_dtype_as_group('float', 'prod', 'direct', 1)
+         106±8μs          128±6μs     1.21  categoricals.Constructor.time_from_codes_all_int8
+      2.89±0.1ms       3.50±0.1ms     1.21  algorithms.Factorize.time_factorize(False, True, 'boolean')
+      23.0±0.5ms         27.9±1ms     1.21  frame_ctor.FromDicts.time_list_of_dict
+     1.82±0.01ms       2.20±0.2ms     1.21  strings.Methods.time_replace('string[pyarrow]')
+         126±5μs          153±4μs     1.21  groupby.GroupByMethods.time_dtype_as_field('float', 'median', 'direct', 5)
+        958±10μs       1.16±0.1ms     1.21  groupby.GroupByMethods.time_dtype_as_group('float', 'cummax', 'transformation', 5)
+        61.4±1μs         74.2±2μs     1.21  groupby.GroupByMethods.time_dtype_as_group('int16', 'all', 'direct', 1)
+     2.65±0.04ms      3.19±0.03ms     1.21  multiindex_object.Isin.time_isin('datetime')
+        67.8±1μs         81.8±2μs     1.21  groupby.GroupByMethods.time_dtype_as_group('int16', 'std', 'direct', 1)
+      57.2±0.9μs         69.1±4μs     1.21  groupby.GroupByMethods.time_dtype_as_field('datetime', 'count', 'direct', 1)
+      69.3±0.5μs         83.6±2μs     1.21  groupby.GroupByMethods.time_dtype_as_group('float', 'std', 'direct', 1)
+         122±2μs          148±3μs     1.21  groupby.GroupByMethods.time_dtype_as_group('uint', 'std', 'direct', 5)
+      14.2±0.2ms         17.1±1ms     1.21  strings.Methods.time_islower('str')
+      80.0±0.5μs        96.5±10μs     1.21  groupby.GroupByMethods.time_dtype_as_field('uint', 'cummax', 'direct', 1)
+      67.2±0.5μs         81.0±5μs     1.21  groupby.GroupByMethods.time_dtype_as_field('uint', 'head', 'direct', 5)
+         362±4μs         435±50μs     1.20  groupby.GroupByMethods.time_dtype_as_field('int16', 'sem', 'direct', 5)
+         121±2μs          146±8μs     1.20  groupby.GroupByMethods.time_dtype_as_field('float', 'min', 'direct', 5)
+      22.8±0.4ms       27.4±0.4ms     1.20  frame_ctor.FromDicts.time_nested_dict_index
+         113±2μs          136±3μs     1.20  groupby.GroupByMethods.time_dtype_as_field('int', 'mean', 'direct', 5)
+      5.65±0.2ms       6.80±0.3ms     1.20  groupby.Nth.time_series_nth('float32')
+        74.5±2μs         89.6±5μs     1.20  groupby.GroupByMethods.time_dtype_as_field('object', 'head', 'direct', 5)
+      77.0±0.5μs        92.5±10μs     1.20  groupby.GroupByMethods.time_dtype_as_field('uint', 'cumprod', 'direct', 1)
+      19.8±0.1ms         23.7±1ms     1.20  timeseries.DatetimeAccessor.time_dt_accessor_date('US/Eastern')
+         173±3μs         208±50μs     1.20  groupby.GroupByMethods.time_dtype_as_field('uint', 'ffill', 'direct', 1)
+      16.8±0.2ms       20.2±0.6ms     1.20  algos.isin.IsinAlmostFullWithRandomInt.time_isin(<class 'numpy.int64'>, 20, 'outside')
+      16.9±0.2ms         20.2±2ms     1.20  timeseries.DatetimeAccessor.time_dt_accessor_date(tzutc())
+         134±4μs         160±30μs     1.20  groupby.GroupByMethods.time_dtype_as_field('datetime', 'first', 'direct', 5)
+         109±1μs          131±8μs     1.20  groupby.GroupByMethods.time_dtype_as_field('object', 'tail', 'direct', 1)
+         128±2μs         153±20μs     1.20  groupby.GroupByMethods.time_dtype_as_field('int16', 'first', 'direct', 5)
+         118±2μs          141±7μs     1.20  groupby.GroupByMethods.time_dtype_as_field('float', 'max', 'direct', 5)
+     3.41±0.03ms       4.08±0.6ms     1.20  io.csv.ReadCSVFloatPrecision.time_read_csv_python_engine(';', '.', 'round_trip')
+         461±9μs         551±60μs     1.19  groupby.GroupByMethods.time_dtype_as_field('uint', 'count', 'transformation', 1)
+         112±2μs         133±10μs     1.19  groupby.GroupByMethods.time_dtype_as_field('uint', 'first', 'direct', 1)
+        83.2±3μs        99.3±10μs     1.19  groupby.GroupByMethods.time_dtype_as_field('int', 'shift', 'direct', 5)
+      61.0±0.6μs         72.8±5μs     1.19  groupby.GroupByMethods.time_dtype_as_field('uint', 'any', 'direct', 1)
+         126±1μs          150±2μs     1.19  groupby.GroupByMethods.time_dtype_as_group('float', 'std', 'direct', 5)
+         529±8μs         631±60μs     1.19  groupby.GroupByMethods.time_dtype_as_field('int', 'prod', 'transformation', 1)
+       124±0.8μs          148±2μs     1.19  groupby.GroupByMethods.time_dtype_as_group('int16', 'std', 'direct', 5)
+      16.9±0.1ms         20.2±1ms     1.19  groupby.GroupByMethods.time_dtype_as_field('uint', 'describe', 'direct', 1)
+      62.0±0.7μs       73.7±0.7μs     1.19  groupby.GroupByMethods.time_dtype_as_field('float', 'all', 'direct', 1)
+        581±20μs         691±20μs     1.19  algorithms.Quantile.time_quantile(0, 'nearest', 'uint')
+        694±20μs         825±10μs     1.19  algorithms.Quantile.time_quantile(1, 'nearest', 'uint')
+         139±6μs         165±10μs     1.19  groupby.GroupByMethods.time_dtype_as_field('uint', 'min', 'direct', 5)
+        581±30μs         689±20μs     1.19  algorithms.Quantile.time_quantile(0, 'higher', 'uint')
+        61.6±1μs       73.1±0.9μs     1.19  groupby.GroupByMethods.time_dtype_as_group('int', 'all', 'direct', 1)
+         129±2μs         153±10μs     1.19  groupby.GroupByMethods.time_dtype_as_field('datetime', 'last', 'direct', 5)
+         101±1μs          120±6μs     1.19  groupby.GroupByMethods.time_dtype_as_field('datetime', 'all', 'direct', 5)
+        718±10μs         851±30μs     1.19  algorithms.Quantile.time_quantile(0.5, 'lower', 'int')
+        93.6±2μs          111±4μs     1.19  groupby.GroupByMethods.time_dtype_as_field('float', 'last', 'direct', 1)
+      23.3±0.4ms       27.6±0.4ms     1.19  frame_ctor.FromDicts.time_nested_dict_index_columns
+         312±6μs          370±9μs     1.19  groupby.GroupByMethods.time_dtype_as_field('int16', 'sem', 'direct', 1)
+      70.0±0.8μs         83.0±1μs     1.19  groupby.GroupByMethods.time_dtype_as_group('int16', 'all', 'direct', 5)
+     5.35±0.07ms       6.34±0.4ms     1.19  groupby.Nth.time_series_nth('float64')
+        74.1±3μs         87.8±6μs     1.18  groupby.GroupByMethods.time_dtype_as_group('float', 'all', 'direct', 5)
+         561±6μs         664±80μs     1.18  groupby.GroupByMethods.time_dtype_as_field('datetime', 'first', 'transformation', 1)
+         379±4μs         448±40μs     1.18  groupby.GroupByMethods.time_dtype_as_field('int16', 'cummax', 'transformation', 1)
+      91.8±0.8μs          109±5μs     1.18  groupby.GroupByMethods.time_dtype_as_field('float', 'prod', 'direct', 1)
+      72.7±0.6μs         85.9±2μs     1.18  groupby.GroupByMethods.time_dtype_as_group('int', 'any', 'direct', 5)
+         131±3μs         154±20μs     1.18  groupby.GroupByMethods.time_dtype_as_field('int16', 'last', 'direct', 5)
+        707±20μs         835±30μs     1.18  algorithms.Quantile.time_quantile(1, 'lower', 'uint')
+        59.9±1μs         70.7±2μs     1.18  groupby.GroupByMethods.time_dtype_as_field('uint', 'all', 'direct', 1)
+      77.0±0.9μs         90.9±2μs     1.18  groupby.GroupByMethods.time_dtype_as_field('int16', 'std', 'direct', 5)
+      60.9±0.7μs         71.9±1μs     1.18  groupby.GroupByMethods.time_dtype_as_group('int', 'any', 'direct', 1)
+        95.4±2μs          113±7μs     1.18  groupby.GroupByMethods.time_dtype_as_field('int', 'mean', 'direct', 1)
+        63.2±1μs         74.6±5μs     1.18  groupby.GroupByMethods.time_dtype_as_field('float', 'any', 'direct', 1)
+     2.51±0.03ms      2.96±0.04ms     1.18  multiindex_object.Isin.time_isin('int')
+      9.59±0.1ms         11.3±1ms     1.18  timeseries.Iteration.time_iter_preexit(<function period_range>)
+         134±4μs          157±9μs     1.18  groupby.GroupByMethods.time_dtype_as_field('datetime', 'tail', 'direct', 5)
+         115±2μs         136±20μs     1.18  groupby.GroupByMethods.time_dtype_as_group('int16', 'max', 'direct', 1)
+         299±3μs         352±50μs     1.18  groupby.GroupByMethods.time_dtype_as_field('datetime', 'diff', 'direct', 1)
+      54.1±0.7μs         63.7±3μs     1.18  groupby.GroupByMethods.time_dtype_as_field('uint', 'count', 'direct', 1)
+        424±20μs          499±9μs     1.18  stat_ops.FrameOps.time_op('sum', 'Int64', 0)
+         128±1μs          151±1μs     1.18  groupby.GroupByMethods.time_dtype_as_field('int', 'sum', 'direct', 5)
+         701±7μs         824±90μs     1.18  groupby.GroupByMethods.time_dtype_as_field('int16', 'sem', 'transformation', 1)
+      72.5±0.9μs         85.2±4μs     1.18  groupby.GroupByMethods.time_dtype_as_field('uint', 'any', 'direct', 5)
+        87.5±1μs          103±3μs     1.17  groupby.GroupByMethods.time_dtype_as_field('datetime', 'all', 'direct', 1)
+         108±1μs          126±4μs     1.17  groupby.GroupByMethods.time_dtype_as_group('int16', 'last', 'direct', 1)
+         108±4μs          127±7μs     1.17  groupby.GroupByMethods.time_dtype_as_field('int16', 'last', 'direct', 1)
+         118±3μs          138±9μs     1.17  groupby.GroupByMethods.time_dtype_as_field('uint', 'max', 'direct', 1)
+     1.16±0.03ms      1.36±0.06ms     1.17  io.csv.ReadCSVFloatPrecision.time_read_csv(',', '.', None)
+        99.7±1μs          117±4μs     1.17  groupby.GroupByMethods.time_dtype_as_group('uint', 'count', 'direct', 5)
+        70.5±1μs         82.7±1μs     1.17  groupby.GroupByMethods.time_dtype_as_group('object', 'any', 'direct', 5)
+      61.8±0.4μs         72.4±2μs     1.17  groupby.GroupByMethods.time_dtype_as_group('uint', 'any', 'direct', 1)
+      17.1±0.4ms       20.1±0.2ms     1.17  groupby.GroupByMethods.time_dtype_as_field('int', 'describe', 'direct', 1)
+        89.5±1μs          105±6μs     1.17  groupby.GroupByMethods.time_dtype_as_field('int16', 'cummax', 'direct', 5)
+         112±2μs          132±2μs     1.17  groupby.GroupByMethods.time_dtype_as_group('datetime', 'first', 'direct', 1)
+      72.5±0.5μs         84.9±1μs     1.17  groupby.GroupByMethods.time_dtype_as_group('datetime', 'all', 'direct', 5)
+      74.4±0.8μs       87.0±0.8μs     1.17  groupby.GroupByMethods.time_dtype_as_field('float', 'std', 'direct', 5)
+      53.5±0.8μs         62.5±2μs     1.17  groupby.GroupByMethods.time_dtype_as_group('int16', 'count', 'direct', 1)
+      73.5±0.5μs         85.8±2μs     1.17  groupby.GroupByMethods.time_dtype_as_group('int16', 'any', 'direct', 5)
+      6.61±0.2ms       7.72±0.2ms     1.17  groupby.Nth.time_frame_nth('float64')
+        64.0±1μs         74.8±2μs     1.17  groupby.GroupByMethods.time_dtype_as_field('int', 'any', 'direct', 1)
+        87.5±1μs          102±5μs     1.17  groupby.GroupByMethods.time_dtype_as_field('int', 'var', 'direct', 1)
+     3.46±0.04ms       4.04±0.5ms     1.17  io.csv.ReadCSVFloatPrecision.time_read_csv_python_engine(',', '.', None)
+        53.8±1μs         62.8±1μs     1.17  groupby.GroupByMethods.time_dtype_as_field('float', 'count', 'direct', 1)
+        93.2±1μs          109±2μs     1.17  groupby.GroupByMethods.time_dtype_as_group('int16', 'cumsum', 'direct', 5)
+      28.7±0.4ms       33.5±0.5ms     1.17  groupby.GroupByMethods.time_dtype_as_group('uint', 'describe', 'direct', 1)
+        380±10μs          444±6μs     1.17  frame_methods.Quantile.time_frame_quantile(1)
+         117±3μs          137±5μs     1.17  groupby.GroupByMethods.time_dtype_as_field('uint', 'min', 'direct', 1)
+        63.0±1μs         73.4±1μs     1.17  groupby.GroupByMethods.time_dtype_as_group('float', 'any', 'direct', 1)
+         109±2μs          128±4μs     1.17  groupby.GroupByMethods.time_dtype_as_field('uint', 'last', 'direct', 1)
+      71.8±0.8μs       83.6±0.9μs     1.16  groupby.GroupByMethods.time_dtype_as_group('int', 'all', 'direct', 5)
+      5.43±0.2ms       6.32±0.5ms     1.16  io.csv.ReadCSVEngine.time_read_bytescsv('pyarrow')
+        65.8±4μs         76.5±1μs     1.16  groupby.GroupByMethods.time_dtype_as_field('int16', 'std', 'direct', 1)
+        72.8±2μs         84.6±2μs     1.16  groupby.GroupByMethods.time_dtype_as_field('int', 'any', 'direct', 5)
+         229±4μs         266±20μs     1.16  inference.ToDatetimeCacheSmallCount.time_unique_date_strings(False, 500)
+         102±2μs          119±2μs     1.16  groupby.GroupByMethods.time_dtype_as_field('float', 'tail', 'direct', 1)
+        60.3±1μs         69.9±1μs     1.16  groupby.GroupByMethods.time_dtype_as_group('int16', 'any', 'direct', 1)
+         324±3μs          376±5μs     1.16  groupby.GroupByMethods.time_dtype_as_group('int', 'last', 'direct', 5)
+        61.4±1μs         71.2±1μs     1.16  groupby.GroupByMethods.time_dtype_as_group('uint', 'all', 'direct', 1)
+         118±2μs          137±7μs     1.16  groupby.GroupByMethods.time_dtype_as_field('int', 'min', 'direct', 1)
+        88.3±2μs          102±3μs     1.16  groupby.GroupByMethods.time_dtype_as_group('int', 'var', 'direct', 1)
+        52.2±1μs         60.5±1μs     1.16  groupby.GroupByMethods.time_dtype_as_group('object', 'count', 'direct', 1)
+         130±1μs         151±10μs     1.16  groupby.GroupByMethods.time_dtype_as_field('object', 'count', 'direct', 5)
+      6.42±0.3ms       7.44±0.7ms     1.16  io.csv.ReadCSVConcatDatetimeBadDateValue.time_read_csv('0')
+         110±2μs          127±2μs     1.16  groupby.GroupByMethods.time_dtype_as_group('int16', 'sum', 'direct', 1)
+         102±1μs          118±2μs     1.16  groupby.GroupByMethods.time_dtype_as_group('int16', 'tail', 'direct', 1)
+        99.3±1μs          115±2μs     1.16  groupby.GroupByMethods.time_dtype_as_group('object', 'last', 'direct', 1)
+      58.6±0.4μs       67.8±0.7μs     1.16  groupby.GroupByMethods.time_dtype_as_group('object', 'head', 'direct', 1)
+         106±3μs         122±10μs     1.16  groupby.GroupByMethods.time_dtype_as_field('int', 'var', 'direct', 5)
+         237±1μs         274±10μs     1.16  inference.ToDatetimeCacheSmallCount.time_unique_date_strings(True, 500)
+      59.9±0.8μs       69.3±0.9μs     1.16  groupby.GroupByMethods.time_dtype_as_field('int16', 'any', 'direct', 1)
+         294±3μs         339±10μs     1.16  groupby.GroupByMethods.time_dtype_as_group('object', 'last', 'direct', 5)
+         110±1μs          127±3μs     1.16  groupby.GroupByMethods.time_dtype_as_group('uint', 'prod', 'direct', 1)
+        14.8±1ms       17.1±0.5ms     1.16  groupby.Cumulative.time_frame_transform_many_nulls('Float64', 'cummin')
+         136±4μs          158±9μs     1.16  groupby.GroupByMethods.time_dtype_as_field('int', 'first', 'direct', 5)
+        716±20μs         826±20μs     1.15  algorithms.Quantile.time_quantile(0.5, 'higher', 'uint')
+      70.8±0.9μs         81.8±1μs     1.15  groupby.GroupByMethods.time_dtype_as_group('object', 'all', 'direct', 5)
+         126±4μs          146±4μs     1.15  groupby.GroupByMethods.time_dtype_as_field('uint', 'last', 'direct', 5)
+         164±1μs          190±6μs     1.15  groupby.GroupByMethods.time_dtype_as_field('int16', 'bfill', 'direct', 1)
+      73.2±0.8μs         84.5±1μs     1.15  groupby.GroupByMethods.time_dtype_as_group('float', 'any', 'direct', 5)
+      69.4±0.7μs         80.1±7μs     1.15  groupby.GroupByMethods.time_dtype_as_field('float', 'head', 'direct', 5)
+        79.3±2μs         91.5±3μs     1.15  groupby.GroupByMethods.time_dtype_as_field('int', 'std', 'direct', 5)
+      20.3±0.1ms         23.4±2ms     1.15  strings.Methods.time_normalize('str')
+     1.35±0.02ms      1.56±0.09ms     1.15  io.csv.ReadCSVParseDates.time_multiple_date('c')
+     1.74±0.02ms      2.01±0.03ms     1.15  reshape.SimpleReshape.time_stack
+     1.70±0.03ms       1.95±0.2ms     1.15  timeseries.ResampleSeries.time_resample('datetime', '5min', 'ohlc')
+         430±2μs         496±60μs     1.15  groupby.GroupByMethods.time_dtype_as_field('uint', 'bfill', 'transformation', 1)
+      99.5±0.9μs          115±2μs     1.15  groupby.GroupByMethods.time_dtype_as_group('datetime', 'count', 'direct', 5)
+      59.9±0.4μs         69.0±2μs     1.15  groupby.GroupByMethods.time_dtype_as_group('object', 'any', 'direct', 1)
+         108±2μs          125±2μs     1.15  groupby.GroupByMethods.time_dtype_as_field('uint', 'tail', 'direct', 5)
+         138±2μs          158±5μs     1.15  groupby.GroupByMethods.time_dtype_as_field('int', 'max', 'direct', 5)
+     2.93±0.03ms       3.37±0.2ms     1.15  io.csv.ReadCSVFloatPrecision.time_read_csv_python_engine(';', '_', None)
+         116±2μs          133±3μs     1.15  groupby.GroupByMethods.time_dtype_as_group('uint', 'min', 'direct', 1)
+        383±10μs         441±20μs     1.15  groupby.Datelike.time_sum('date_range')
+         111±3μs          128±4μs     1.15  groupby.GroupByMethods.time_dtype_as_group('int', 'sum', 'direct', 1)
+         126±4μs          145±5μs     1.15  groupby.GroupByMethods.time_dtype_as_field('int', 'prod', 'direct', 5)
+         471±9μs         541±10μs     1.15  stat_ops.FrameOps.time_op('prod', 'Int64', 0)
+        950±20μs      1.09±0.07ms     1.15  algorithms.Quantile.time_quantile(1, 'linear', 'int')
+        63.8±2μs       73.3±0.7μs     1.15  groupby.GroupByMethods.time_dtype_as_field('int16', 'count', 'direct', 5)
+      53.8±0.9μs         61.8±1μs     1.15  groupby.GroupByMethods.time_dtype_as_field('int16', 'count', 'direct', 1)
+     2.11±0.01ms      2.43±0.04ms     1.15  algorithms.Factorize.time_factorize(False, False, 'boolean')
+      17.2±0.3ms       19.8±0.2ms     1.15  groupby.GroupByMethods.time_dtype_as_field('float', 'describe', 'direct', 1)
+     2.56±0.04ms       2.95±0.1ms     1.15  io.csv.ParseDateComparison.time_to_datetime_format_DD_MM_YYYY(True)
+      63.7±0.8μs         73.2±1μs     1.15  groupby.GroupByMethods.time_dtype_as_group('datetime', 'head', 'direct', 1)
+         104±3μs          119±7μs     1.15  groupby.GroupByMethods.time_dtype_as_field('int16', 'tail', 'direct', 1)
+        63.7±1μs         73.1±2μs     1.15  groupby.GroupByMethods.time_dtype_as_group('float', 'head', 'direct', 1)
+     1.05±0.02ms      1.20±0.04ms     1.15  algorithms.Quantile.time_quantile(0, 'linear', 'uint')
+         114±1μs          131±9μs     1.15  groupby.GroupByMethods.time_dtype_as_group('int16', 'median', 'direct', 1)
+      62.0±0.3μs       71.1±0.8μs     1.15  groupby.GroupByMethods.time_dtype_as_group('int16', 'head', 'direct', 1)
+         125±3μs          143±3μs     1.15  groupby.GroupByMethods.time_dtype_as_group('int', 'std', 'direct', 5)
+        66.8±2μs         76.5±2μs     1.15  groupby.GroupByMethods.time_dtype_as_field('int', 'count', 'direct', 5)
+         116±1μs          133±2μs     1.15  groupby.GroupByMethods.time_dtype_as_group('float', 'sum', 'direct', 1)
+      29.9±0.6ms       34.3±0.3ms     1.15  frame_ctor.FromDicts.time_nested_dict
+         114±2μs          130±2μs     1.14  groupby.GroupByMethods.time_dtype_as_group('float', 'last', 'direct', 1)
+        720±20μs         825±30μs     1.14  algorithms.Quantile.time_quantile(1, 'higher', 'int')
+      54.1±0.3μs         62.0±1μs     1.14  groupby.GroupByMethods.time_dtype_as_field('int', 'count', 'direct', 1)
+        16.3±1ms       18.6±0.6ms     1.14  groupby.Cumulative.time_frame_transform_many_nulls('Float64', 'cummax')
+         356±4μs         408±10μs     1.14  groupby.GroupByMethods.time_dtype_as_group('float', 'sum', 'direct', 5)
+        75.4±1μs         86.3±7μs     1.14  groupby.GroupByMethods.time_dtype_as_field('int', 'cumsum', 'direct', 1)
+         135±3μs          155±4μs     1.14  groupby.GroupByMethods.time_dtype_as_field('uint', 'median', 'direct', 5)
+        98.8±1μs          113±2μs     1.14  groupby.GroupByMethods.time_dtype_as_group('object', 'tail', 'direct', 1)
+         114±1μs          130±2μs     1.14  groupby.GroupByMethods.time_dtype_as_group('float', 'first', 'direct', 1)
+        93.5±2μs          107±1μs     1.14  groupby.GroupByMethods.time_dtype_as_group('uint', 'cumsum', 'direct', 5)
+     3.41±0.04ms       3.90±0.5ms     1.14  io.csv.ReadCSVFloatPrecision.time_read_csv_python_engine(',', '.', 'high')
+      17.0±0.5ms       19.5±0.4ms     1.14  groupby.GroupByMethods.time_dtype_as_field('int16', 'describe', 'direct', 1)
+        23.9±1ms       27.4±0.7ms     1.14  groupby.GroupByCythonAgg.time_frame_agg('float64', 'sum')
+      30.7±0.3ms       35.1±0.5ms     1.14  frame_ctor.FromDicts.time_nested_dict_columns
+        72.0±1μs         82.2±1μs     1.14  groupby.GroupByMethods.time_dtype_as_group('uint', 'all', 'direct', 5)
+      71.0±0.8μs         81.1±8μs     1.14  groupby.GroupByMethods.time_dtype_as_group('object', 'shift', 'direct', 1)
+         208±2μs         238±10μs     1.14  groupby.GroupByMethods.time_dtype_as_field('datetime', 'bfill', 'direct', 5)
+         341±2μs         389±10μs     1.14  groupby.GroupByMethods.time_dtype_as_group('uint', 'prod', 'direct', 5)
+         140±5μs          160±2μs     1.14  groupby.GroupByMethods.time_dtype_as_group('float', 'cumcount', 'direct', 1)
+         115±3μs          131±4μs     1.14  groupby.GroupByMethods.time_dtype_as_group('int', 'max', 'direct', 1)
+      72.7±0.7μs         82.9±2μs     1.14  groupby.GroupByMethods.time_dtype_as_field('float', 'all', 'direct', 5)
+       100±0.8μs          115±2μs     1.14  groupby.GroupByMethods.time_dtype_as_group('int16', 'count', 'direct', 5)
+         443±4μs         505±20μs     1.14  stat_ops.FrameOps.time_op('sum', 'float', 0)
+         114±1μs          130±4μs     1.14  groupby.GroupByMethods.time_dtype_as_group('float', 'min', 'direct', 1)
+         111±1μs          126±4μs     1.14  groupby.GroupByMethods.time_dtype_as_group('uint', 'last', 'direct', 1)
+         109±2μs          124±2μs     1.14  groupby.GroupByMethods.time_dtype_as_group('int16', 'prod', 'direct', 1)
+         112±3μs          128±2μs     1.14  groupby.GroupByMethods.time_dtype_as_field('float', 'sum', 'direct', 5)
+        64.7±1μs         73.7±5μs     1.14  groupby.GroupByMethods.time_dtype_as_field('uint', 'head', 'direct', 1)
+        74.4±1μs         84.6±2μs     1.14  groupby.GroupByMethods.time_dtype_as_field('int', 'all', 'direct', 5)
+     1.74±0.02ms      1.98±0.07ms     1.14  io.csv.ReadCSVDInferDatetimeFormat.time_read_csv(True, 'ymd')
+      96.9±0.7μs          110±2μs     1.14  groupby.GroupByMethods.time_dtype_as_group('object', 'count', 'direct', 5)
+     1.40±0.01ms      1.60±0.09ms     1.14  timeseries.DatetimeIndex.time_timeseries_is_month_start('repeated')
+         117±2μs          133±5μs     1.14  groupby.GroupByMethods.time_dtype_as_group('int16', 'first', 'direct', 1)
+       101±0.9μs          114±4μs     1.14  groupby.GroupByMethods.time_dtype_as_field('uint', 'var', 'direct', 5)
+         139±6μs          158±4μs     1.14  groupby.GroupByMethods.time_dtype_as_field('int', 'min', 'direct', 5)
+     1.09±0.05ms      1.24±0.04ms     1.14  algorithms.Quantile.time_quantile(0, 'midpoint', 'uint')
+        736±10μs         837±20μs     1.14  algorithms.Quantile.time_quantile(0.5, 'nearest', 'int')
+      69.2±0.9μs         78.7±5μs     1.14  groupby.GroupByMethods.time_dtype_as_field('object', 'head', 'direct', 1)
+         108±3μs          123±2μs     1.14  groupby.GroupByMethods.time_dtype_as_field('uint', 'sum', 'direct', 1)
+         101±3μs          115±2μs     1.14  groupby.GroupByMethods.time_dtype_as_field('float', 'first', 'direct', 1)
+         194±2μs         220±20μs     1.14  groupby.GroupByMethods.time_dtype_as_field('datetime', 'bfill', 'direct', 1)
+        93.6±1μs          106±4μs     1.14  groupby.GroupByMethods.time_dtype_as_field('int16', 'mean', 'direct', 1)
+         354±4μs         402±10μs     1.14  groupby.GroupByMethods.time_dtype_as_group('int16', 'sum', 'direct', 5)
+         181±3μs          205±8μs     1.13  groupby.GroupByMethods.time_dtype_as_group('float', 'mean', 'direct', 5)
+        602±20μs         683±10μs     1.13  algorithms.Quantile.time_quantile(0, 'lower', 'uint')
+         111±2μs          125±3μs     1.13  groupby.GroupByMethods.time_dtype_as_group('int', 'last', 'direct', 1)
+     1.24±0.01ms      1.41±0.08ms     1.13  stat_ops.FrameOps.time_op('var', 'float', 0)
+      53.7±0.6μs       60.9±0.6μs     1.13  groupby.GroupByMethods.time_dtype_as_group('datetime', 'count', 'direct', 1)
+         135±4μs          153±9μs     1.13  groupby.GroupByMethods.time_dtype_as_field('uint', 'max', 'direct', 5)
+         115±2μs          131±3μs     1.13  groupby.GroupByMethods.time_dtype_as_group('int', 'first', 'direct', 1)
+         105±1μs          119±2μs     1.13  groupby.GroupByMethods.time_dtype_as_group('float', 'tail', 'direct', 1)
+         114±1μs          129±3μs     1.13  groupby.GroupByMethods.time_dtype_as_group('float', 'max', 'direct', 1)
+        80.4±1μs         91.1±9μs     1.13  groupby.GroupByMethods.time_dtype_as_field('int16', 'cummin', 'direct', 1)
+        89.7±1μs          102±3μs     1.13  groupby.GroupByMethods.time_dtype_as_group('int16', 'var', 'direct', 1)
+         109±3μs          124±2μs     1.13  groupby.GroupByMethods.time_dtype_as_field('int16', 'tail', 'direct', 5)
+         337±3μs          382±6μs     1.13  groupby.GroupByMethods.time_dtype_as_group('int', 'prod', 'direct', 5)
+         113±1μs          128±4μs     1.13  groupby.GroupByMethods.time_dtype_as_group('int', 'median', 'direct', 1)
+        719±20μs         814±30μs     1.13  algorithms.Quantile.time_quantile(0.5, 'lower', 'uint')
+         338±6μs          382±5μs     1.13  groupby.GroupByMethods.time_dtype_as_group('float', 'min', 'direct', 5)
+      38.5±0.5ms         43.6±1ms     1.13  groupby.GroupByMethods.time_dtype_as_group('float', 'describe', 'direct', 1)
+        98.7±2μs          112±2μs     1.13  groupby.GroupByMethods.time_dtype_as_group('float', 'mean', 'direct', 1)
+         159±1μs          180±6μs     1.13  groupby.GroupByMethods.time_dtype_as_field('int16', 'cumcount', 'direct', 1)
+      44.7±0.6ms         50.4±1ms     1.13  io.csv.ToCSVDatetimeBig.time_frame(10000)
+         335±6μs          378±9μs     1.13  groupby.GroupByMethods.time_dtype_as_group('float', 'first', 'direct', 5)
+         346±4μs          391±6μs     1.13  groupby.GroupByMethods.time_dtype_as_group('int', 'sum', 'direct', 5)
+     1.20±0.02ms      1.36±0.04ms     1.13  io.csv.ReadCSVFloatPrecision.time_read_csv(';', '_', 'round_trip')
+         107±3μs          121±1μs     1.13  groupby.GroupByMethods.time_dtype_as_field('uint', 'prod', 'direct', 1)
+        74.4±1μs       83.9±0.6μs     1.13  groupby.GroupByMethods.time_dtype_as_field('float', 'any', 'direct', 5)
+        83.9±1μs         94.6±7μs     1.13  groupby.GroupByMethods.time_dtype_as_field('uint', 'cumprod', 'direct', 5)
+         644±9ms          725±9ms     1.13  join_merge.I8Merge.time_i8merge('left')
+         334±4μs          377±6μs     1.13  groupby.GroupByMethods.time_dtype_as_group('int16', 'first', 'direct', 5)
+         110±3μs          124±2μs     1.13  groupby.GroupByMethods.time_dtype_as_group('int', 'prod', 'direct', 1)
+      15.4±0.1ms         17.3±1ms     1.13  timeseries.DatetimeAccessor.time_dt_accessor_month_name('UTC')
+         116±4ms          130±2ms     1.13  io.json.ReadJSON.time_read_json('split', 'int')
+        73.4±1μs         82.6±3μs     1.13  groupby.GroupByMethods.time_dtype_as_group('int', 'shift', 'direct', 5)
+        90.5±1μs          102±3μs     1.13  groupby.GroupByMethods.time_dtype_as_group('uint', 'var', 'direct', 1)
+     1.04±0.01ms      1.17±0.04ms     1.13  timeseries.ResampleDataFrame.time_method('max')
+      63.3±0.7μs         71.2±1μs     1.13  groupby.GroupByMethods.time_dtype_as_group('uint', 'head', 'direct', 1)
+         109±4μs          123±2μs     1.13  groupby.GroupByMethods.time_dtype_as_field('float', 'prod', 'direct', 5)
+     1.49±0.02ms       1.67±0.1ms     1.13  io.csv.ReadCSVCachedParseDates.time_read_csv_cached(False, 'c')
+         104±1μs          117±3μs     1.13  groupby.GroupByMethods.time_dtype_as_group('float', 'count', 'direct', 5)
+         101±1μs          113±5μs     1.13  groupby.GroupByMethods.time_dtype_as_group('float', 'size', 'direct', 5)
+        98.7±1μs          111±1μs     1.13  groupby.GroupByMethods.time_dtype_as_group('int', 'cumprod', 'direct', 5)
+         119±3μs          134±3μs     1.12  groupby.GroupByMethods.time_dtype_as_field('datetime', 'first', 'direct', 1)
+        54.9±1μs         61.8±2μs     1.12  groupby.GroupByMethods.time_dtype_as_group('float', 'count', 'direct', 1)
+      70.3±0.7μs         79.0±3μs     1.12  groupby.GroupByMethods.time_dtype_as_field('int', 'head', 'direct', 5)
+         109±2μs          123±8μs     1.12  groupby.GroupByMethods.time_dtype_as_field('float', 'median', 'direct', 1)
+         331±3μs          372±8μs     1.12  groupby.GroupByMethods.time_dtype_as_group('uint', 'max', 'direct', 5)
+      87.2±0.9μs         98.0±3μs     1.12  groupby.GroupByMethods.time_dtype_as_field('uint', 'var', 'direct', 1)
+      23.3±0.4ms         26.2±1ms     1.12  strings.Methods.time_zfill('string[pyarrow]')
+        606±20μs         681±20μs     1.12  algorithms.Quantile.time_quantile(0, 'lower', 'int')
+      75.2±0.6μs         84.5±5μs     1.12  groupby.GroupByMethods.time_dtype_as_field('object', 'shift', 'direct', 5)
+     1.15±0.03ms      1.29±0.06ms     1.12  algorithms.Quantile.time_quantile(0.5, 'midpoint', 'uint')
+         134±2μs          151±2μs     1.12  groupby.GroupByMethods.time_dtype_as_field('int16', 'max', 'direct', 5)
+     1.74±0.01ms       1.95±0.1ms     1.12  timeseries.DatetimeIndex.time_normalize('tz_naive')
+         154±1μs          173±8μs     1.12  groupby.GroupByMethods.time_dtype_as_field('object', 'last', 'direct', 1)
+         340±9μs         381±20μs     1.12  groupby.GroupByMethods.time_dtype_as_group('int', 'min', 'direct', 5)
+      96.8±0.9μs          109±2μs     1.12  groupby.GroupByMethods.time_dtype_as_group('float', 'cumsum', 'direct', 5)
+        74.0±2μs         83.0±2μs     1.12  groupby.GroupByMethods.time_dtype_as_group('uint', 'any', 'direct', 5)
+     1.17±0.01ms       1.31±0.1ms     1.12  inference.ToDatetimeFromIntsFloats.time_nanosec_uint64
+        722±10μs         810±20μs     1.12  algorithms.Quantile.time_quantile(1, 'higher', 'uint')
+         266±7ms          299±6ms     1.12  io.csv.ToCSVMultiIndexUnusedLevels.time_full_frame
+      85.9±0.9μs         96.4±3μs     1.12  groupby.GroupByMethods.time_dtype_as_field('uint', 'cummin', 'direct', 5)
+         104±3μs          116±2μs     1.12  groupby.GroupByMethods.time_dtype_as_field('uint', 'tail', 'direct', 1)
+      29.3±0.3ms       32.9±0.7ms     1.12  groupby.GroupByMethods.time_dtype_as_group('int', 'describe', 'direct', 1)
+         327±2μs          366±6μs     1.12  groupby.GroupByMethods.time_dtype_as_group('datetime', 'first', 'direct', 5)
+         165±2μs          185±4μs     1.12  groupby.GroupByMethods.time_dtype_as_field('uint', 'cumcount', 'direct', 5)
+      25.9±0.6ms       29.1±0.7ms     1.12  io.csv.ToCSVMultiIndexUnusedLevels.time_sliced_frame
+        961±10μs      1.08±0.01ms     1.12  algorithms.Quantile.time_quantile(1, 'midpoint', 'uint')
+        63.6±1μs         71.3±2μs     1.12  groupby.GroupByMethods.time_dtype_as_group('int', 'head', 'direct', 1)
+         138±4μs          155±4μs     1.12  groupby.GroupByMethods.time_dtype_as_field('datetime', 'min', 'direct', 5)
+         335±3μs          376±9μs     1.12  groupby.GroupByMethods.time_dtype_as_group('datetime', 'last', 'direct', 5)
+        61.9±1μs       69.4±0.5μs     1.12  groupby.GroupByMethods.time_dtype_as_group('object', 'all', 'direct', 1)
+        98.7±2μs        111±0.9μs     1.12  groupby.GroupByMethods.time_dtype_as_group('int16', 'cumprod', 'direct', 5)
+         182±2μs         204±20μs     1.12  groupby.GroupByMethods.time_dtype_as_field('int16', 'cumprod', 'direct', 1)
+         176±2μs         197±20μs     1.12  groupby.GroupByMethods.time_dtype_as_field('object', 'last', 'direct', 5)
+         338±3μs          378±7μs     1.12  groupby.GroupByMethods.time_dtype_as_group('int16', 'prod', 'direct', 5)
+         118±3μs          132±2μs     1.12  groupby.GroupByMethods.time_dtype_as_group('uint', 'first', 'direct', 1)
+     1.17±0.04ms      1.31±0.02ms     1.12  algorithms.Quantile.time_quantile(0.5, 'midpoint', 'int')
+      35.4±0.2ms       39.6±0.6ms     1.12  groupby.GroupByMethods.time_dtype_as_group('int', 'skew', 'transformation', 5)
+         135±3μs          151±3μs     1.12  groupby.GroupByMethods.time_dtype_as_field('int16', 'min', 'direct', 5)
+      36.9±0.3ms         41.3±1ms     1.12  groupby.GroupByMethods.time_dtype_as_group('int16', 'skew', 'direct', 5)
+        99.0±2μs          111±3μs     1.12  groupby.GroupByMethods.time_dtype_as_field('datetime', 'size', 'direct', 1)
+         333±6μs          373±7μs     1.12  groupby.GroupByMethods.time_dtype_as_group('datetime', 'max', 'direct', 5)
+         361±5μs         403±50μs     1.12  groupby.GroupByMethods.time_dtype_as_field('uint', 'cumsum', 'transformation', 1)
+        98.5±1μs          110±2μs     1.12  groupby.GroupByMethods.time_dtype_as_field('uint', 'size', 'direct', 1)
+      6.72±0.1ms       7.51±0.1ms     1.12  groupby.Nth.time_frame_nth('datetime')
+         118±2μs          132±4μs     1.12  groupby.GroupByMethods.time_dtype_as_group('uint', 'max', 'direct', 1)
+        73.2±2μs         81.8±3μs     1.12  groupby.GroupByMethods.time_dtype_as_field('int16', 'any', 'direct', 5)
+         127±1μs          142±3μs     1.12  groupby.GroupByMethods.time_dtype_as_field('uint', 'prod', 'direct', 5)
+      84.8±0.5μs         94.7±2μs     1.12  groupby.GroupByMethods.time_dtype_as_group('float', 'cummax', 'direct', 5)
+         134±4μs          149±3μs     1.12  groupby.GroupByMethods.time_dtype_as_field('datetime', 'max', 'direct', 5)
+        70.2±1μs         78.4±2μs     1.12  groupby.GroupByMethods.time_dtype_as_group('object', 'ffill', 'direct', 1)
+        83.3±1μs         93.1±9μs     1.12  groupby.GroupByMethods.time_dtype_as_field('int16', 'cummax', 'direct', 1)
+        88.3±1ms         98.6±3ms     1.12  strings.Methods.time_rpartition('string[pyarrow]')
+         468±4μs         523±60μs     1.12  groupby.GroupByMethods.time_dtype_as_field('datetime', 'count', 'transformation', 1)
+      53.4±0.8ms         59.6±1ms     1.12  groupby.GroupByMethods.time_dtype_as_group('float', 'skew', 'transformation', 5)
+         167±2μs          187±2μs     1.12  groupby.GroupByMethods.time_dtype_as_field('int', 'cumcount', 'direct', 5)
+        54.7±1μs       61.0±0.7μs     1.12  groupby.GroupByMethods.time_dtype_as_group('int', 'count', 'direct', 1)
+         350±4μs          391±3μs     1.12  groupby.GroupByMethods.time_dtype_as_group('float', 'prod', 'direct', 5)
+         116±6μs          130±5μs     1.12  groupby.GroupByMethods.time_dtype_as_field('int', 'first', 'direct', 1)
+      6.17±0.2ms       6.87±0.1ms     1.12  frame_methods.Fillna.time_frame_fillna(True, 'bfill', 'Float64')
+         154±3μs         171±10μs     1.11  groupby.GroupByMethods.time_dtype_as_field('uint', 'cumcount', 'direct', 1)
+         337±4μs          376±4μs     1.11  groupby.GroupByMethods.time_dtype_as_group('int16', 'min', 'direct', 5)
+      94.7±0.7μs          105±1μs     1.11  groupby.GroupByMethods.time_dtype_as_group('int16', 'mean', 'direct', 1)
+     1.10±0.03ms      1.23±0.03ms     1.11  algorithms.Quantile.time_quantile(0, 'midpoint', 'int')
+         331±3μs          369±4μs     1.11  groupby.GroupByMethods.time_dtype_as_group('int16', 'last', 'direct', 5)
+         103±2μs          115±1μs     1.11  groupby.GroupByMethods.time_dtype_as_group('uint', 'tail', 'direct', 1)
+         166±3μs         185±10μs     1.11  groupby.GroupByMethods.time_dtype_as_field('int16', 'ffill', 'direct', 1)
+      41.5±0.3ms         46.2±2ms     1.11  groupby.GroupByCythonAggEaDtypes.time_frame_agg('Float64', 'first')
+         109±2μs          121±2μs     1.11  groupby.GroupByMethods.time_dtype_as_field('int16', 'mean', 'direct', 5)
+         371±6μs         413±20μs     1.11  groupby.GroupByMethods.time_dtype_as_field('uint', 'cummax', 'transformation', 1)
+         336±6μs          374±6μs     1.11  groupby.GroupByMethods.time_dtype_as_group('uint', 'first', 'direct', 5)
+         481±9μs         535±10μs     1.11  period.Indexing.time_align
+        92.9±1μs          103±5μs     1.11  groupby.GroupByMethods.time_dtype_as_field('datetime', 'head', 'direct', 5)
+      55.0±0.4μs         61.2±7μs     1.11  dtypes.SelectDtypes.time_select_dtype_string_include('int8')
+        56.2±2ms         62.4±3ms     1.11  groupby.GroupByCythonAggEaDtypes.time_frame_agg('Float64', 'var')
+        632±10ms         702±10ms     1.11  join_merge.I8Merge.time_i8merge('inner')
+      37.0±0.4ms       41.0±0.6ms     1.11  groupby.GroupByMethods.time_dtype_as_group('int16', 'skew', 'transformation', 5)
+     2.97±0.02ms      3.30±0.04ms     1.11  stat_ops.Correlation.time_corrwith_rows('pearson')
+         339±4μs          376±1μs     1.11  groupby.GroupByMethods.time_dtype_as_group('datetime', 'min', 'direct', 5)
+         248±1ms          275±3ms     1.11  frame_methods.Fillna.time_frame_fillna(True, 'pad', 'object')
+         362±6μs         401±20μs     1.11  groupby.GroupByMethods.time_dtype_as_field('int', 'sem', 'direct', 5)
+         104±3μs          116±1μs     1.11  groupby.GroupByMethods.time_dtype_as_group('int', 'tail', 'direct', 1)
+     3.88±0.07ms      4.30±0.06ms     1.11  reshape.PivotTable.time_pivot_table_categorical_observed
+         542±9μs         601±80μs     1.11  groupby.GroupByMethods.time_dtype_as_field('object', 'value_counts', 'direct', 1)
+      60.9±0.7ms         67.5±5ms     1.11  io.csv.ReadCSVThousands.time_thousands('|', None, 'python')
+         114±2μs          127±3μs     1.11  groupby.GroupByMethods.time_dtype_as_field('datetime', 'max', 'direct', 1)
+      70.1±0.5μs         77.7±4μs     1.11  groupby.GroupByMethods.time_dtype_as_field('object', 'shift', 'direct', 1)
+         118±2μs          131±2μs     1.11  groupby.GroupByMethods.time_dtype_as_field('float', 'size', 'direct', 5)
+        72.2±1μs         79.9±1μs     1.11  groupby.GroupByMethods.time_dtype_as_group('datetime', 'cummin', 'direct', 1)
+         189±2ms          209±3ms     1.11  groupby.Transform.time_transform_lambda_max
+      83.4±0.6ms       92.3±0.8ms     1.11  replace.Convert.time_replace('DataFrame', 'Timedelta')
+        632±10ms          700±8ms     1.11  join_merge.I8Merge.time_i8merge('outer')
+      91.9±0.6μs          102±4μs     1.11  groupby.GroupByMethods.time_dtype_as_field('uint', 'mean', 'direct', 1)
+      13.9±0.2ms       15.3±0.6ms     1.11  gil.ParallelFactorize.time_loop(2)
+         363±7μs         401±10μs     1.11  groupby.GroupByMethods.time_dtype_as_field('uint', 'sem', 'direct', 5)
+         117±2μs          129±2μs     1.11  groupby.GroupByMethods.time_dtype_as_group('int16', 'min', 'direct', 1)
+        76.0±1μs         84.0±2μs     1.11  groupby.GroupByMethods.time_dtype_as_group('datetime', 'any', 'direct', 5)
+       111±0.5μs          123±3μs     1.11  groupby.GroupByMethods.time_dtype_as_field('datetime', 'shift', 'direct', 5)
+         170±1μs          187±4μs     1.10  groupby.GroupByMethods.time_dtype_as_group('int16', 'mean', 'direct', 5)
+      25.8±0.2ms       28.5±0.2ms     1.10  groupby.GroupByMethods.time_dtype_as_group('int16', 'describe', 'direct', 1)
+      12.7±0.2ms       14.0±0.5ms     1.10  algos.isin.IsinAlmostFullWithRandomInt.time_isin(<class 'numpy.object_'>, 18, 'outside')
+         120±5μs          133±3μs     1.10  groupby.GroupByMethods.time_dtype_as_field('int', 'median', 'direct', 1)
+         231±1ms          255±7ms     1.10  groupby.GroupByMethods.time_dtype_as_group('float', 'describe', 'direct', 5)
+         239±2μs          264±4μs     1.10  groupby.GroupByMethods.time_dtype_as_group('int16', 'median', 'direct', 5)
+     2.25±0.05μs      2.48±0.07μs     1.10  indexing_engines.NumericEngineIndexing.time_get_loc_near_middle((<class 'pandas._libs.index.Int8Engine'>, <class 'numpy.int8'>), 'monotonic_incr', False, 2000000)
+        99.7±2μs         110±10μs     1.10  groupby.GroupByMethods.time_dtype_as_group('uint', 'size', 'direct', 5)
+      55.0±0.8μs         60.7±1μs     1.10  groupby.GroupByMethods.time_dtype_as_group('uint', 'count', 'direct', 1)
+        467±10μs         515±10μs     1.10  groupby.GroupByMethods.time_dtype_as_field('int16', 'all', 'transformation', 1)
+         301±4μs          332±5μs     1.10  groupby.GroupByMethods.time_dtype_as_group('object', 'first', 'direct', 5)
+         168±5μs          186±8μs     1.10  groupby.GroupByMethods.time_dtype_as_field('object', 'cumcount', 'direct', 5)
+         103±2μs          113±2μs     1.10  groupby.GroupByMethods.time_dtype_as_field('int16', 'var', 'direct', 5)
+         277±1ms         305±10ms     1.10  io.csv.ReadCSVEngine.time_read_stringcsv('python')
+         161±2μs          178±3μs     1.10  groupby.GroupByMethods.time_dtype_as_field('object', 'first', 'direct', 1)
+       174±0.6ms          192±2ms     1.10  groupby.GroupByMethods.time_dtype_as_group('int', 'describe', 'direct', 5)
+        88.4±1μs         97.4±2μs     1.10  groupby.GroupByMethods.time_dtype_as_group('uint', 'cummax', 'direct', 5)
+         105±3μs          116±2μs     1.10  groupby.GroupByMethods.time_dtype_as_group('float', 'median', 'direct', 1)
+     3.45±0.06ms       3.80±0.1ms     1.10  io.csv.ReadCSVFloatPrecision.time_read_csv_python_engine(';', '.', 'high')
+         116±2μs          128±4μs     1.10  groupby.GroupByMethods.time_dtype_as_group('uint', 'median', 'direct', 1)
+         431±3μs         475±20μs     1.10  groupby.GroupByMethods.time_dtype_as_field('datetime', 'cumcount', 'transformation', 1)
+         535±6μs         589±70μs     1.10  groupby.GroupByMethods.time_dtype_as_field('uint', 'first', 'transformation', 1)
+        99.2±2μs          109±4μs     1.10  groupby.GroupByMethods.time_dtype_as_group('uint', 'cumprod', 'direct', 5)
+        72.1±1μs         79.4±1μs     1.10  groupby.GroupByMethods.time_dtype_as_group('object', 'bfill', 'direct', 1)
+        554±10μs         610±10μs     1.10  stat_ops.FrameOps.time_op('mean', 'float', 0)
+      9.78±0.3ms       10.8±0.7ms     1.10  io.csv.ToCSVDatetime.time_frame_date_formatting
+         341±5μs          376±4μs     1.10  groupby.GroupByMethods.time_dtype_as_group('float', 'max', 'direct', 5)
+        78.2±1ms         86.0±2ms     1.10  groupby.GroupByCythonAggEaDtypes.time_frame_agg('Int64', 'last')
+        86.4±1μs         95.1±4μs     1.10  groupby.GroupByMethods.time_dtype_as_field('uint', 'cummax', 'direct', 5)
+         554±5ms         610±20ms     1.10  io.csv.ToCSVDatetimeIndex.time_frame_date_formatting_index
+         339±6μs         373±10μs     1.10  groupby.GroupByMethods.time_dtype_as_group('int', 'first', 'direct', 5)
+      97.6±0.5ms          107±4ms     1.10  strings.Split.time_rsplit('string[pyarrow]', True)
+         120±4μs          132±3μs     1.10  groupby.GroupByMethods.time_dtype_as_field('float', 'first', 'direct', 5)
+        92.7±1μs          102±3μs     1.10  groupby.GroupByMethods.time_dtype_as_group('int', 'cumsum', 'direct', 5)
+        88.3±4ms         97.1±1ms     1.10  algos.isin.IsInLongSeriesLookUpDominates.time_isin('object', 1000, 'random_misses')
+      89.8±0.9μs         98.8±4μs     1.10  groupby.GroupByMethods.time_dtype_as_group('int', 'cummin', 'direct', 5)
+     2.09±0.01ms       2.29±0.2ms     1.10  strings.Methods.time_startswith('string[pyarrow]')
+     2.95±0.02ms       3.24±0.2ms     1.10  io.csv.ReadCSVFloatPrecision.time_read_csv_python_engine(';', '_', 'round_trip')
+        71.0±1μs         78.0±4μs     1.10  groupby.GroupByMethods.time_dtype_as_field('uint', 'cumsum', 'direct', 1)
+         116±2μs          128±3μs     1.10  groupby.GroupByMethods.time_dtype_as_group('datetime', 'max', 'direct', 1)
+     1.24±0.01ms      1.37±0.05ms     1.10  timeseries.ResampleDatetetime64.time_resample
+        89.5±3μs         98.4±2μs     1.10  groupby.GroupByMethods.time_dtype_as_group('int16', 'cummax', 'direct', 5)
+        734±30μs         807±20μs     1.10  algorithms.Quantile.time_quantile(0.5, 'nearest', 'uint')
+      70.9±0.8μs         77.9±2μs     1.10  groupby.GroupByMethods.time_dtype_as_group('datetime', 'shift', 'direct', 1)
+     7.13±0.06μs       7.83±0.1μs     1.10  timeseries.AsOf.time_asof_single_early('Series')
+      27.1±0.8ms         29.7±2ms     1.10  groupby.GroupByCythonAgg.time_frame_agg('float64', 'all')
+         690±9ms         758±10ms     1.10  join_merge.I8Merge.time_i8merge('right')
+        88.5±2μs         97.1±2μs     1.10  groupby.GroupByMethods.time_dtype_as_group('uint', 'cummin', 'direct', 5)
+        770±10μs          845±6μs     1.10  stat_ops.FrameOps.time_op('prod', 'float', 0)
+      64.7±0.9μs         71.1±1μs     1.10  groupby.GroupByMethods.time_dtype_as_field('int16', 'head', 'direct', 1)
+      3.85±0.1ms       4.22±0.3ms     1.10  join_merge.Concat.time_concat_series(0)
+        80.3±1μs         88.1±1μs     1.10  groupby.GroupByMethods.time_dtype_as_field('float', 'cumprod', 'direct', 1)
+     1.17±0.03ms       1.28±0.1ms     1.10  inference.ToDatetimeFromIntsFloats.time_nanosec_int64
+      5.51±0.1ms       6.04±0.2ms     1.10  groupby.String.time_str_func('str', 'first')
+         904±4ms         991±30ms     1.10  io.csv.ToCSVIndexes.time_head_of_multiindex
+        67.2±1μs         73.7±2μs     1.10  groupby.GroupByMethods.time_dtype_as_field('float', 'count', 'direct', 5)
+         319±3μs          350±3μs     1.10  groupby.GroupByMethods.time_dtype_as_group('int16', 'sem', 'direct', 1)
+         156±3μs          171±2μs     1.10  groupby.GroupByMethods.time_dtype_as_group('int16', 'cumcount', 'direct', 1)
+      76.4±0.8μs         83.6±1μs     1.10  groupby.GroupByMethods.time_dtype_as_group('int16', 'cummin', 'direct', 1)
+         436±7μs         478±10μs     1.10  groupby.GroupByMethods.time_dtype_as_field('int', 'cumcount', 'transformation', 1)
+        76.4±1μs         83.7±2μs     1.10  groupby.GroupByMethods.time_dtype_as_group('int', 'cummin', 'direct', 1)
+      88.9±0.6μs         97.4±2μs     1.10  groupby.GroupByMethods.time_dtype_as_group('int16', 'cummin', 'direct', 5)
-         169±2ms          153±1ms     0.90  io.json.ToJSONLines.time_float_int_lines
-         130±2ms          118±5ms     0.90  io.json.ToJSONWide.time_to_json('index', 'df_int_float_str')
-      7.17±0.4ms       6.46±0.1ms     0.90  rolling.Pairwise.time_pairwise(({}, 'expanding'), 'cov', True)
-      3.87±0.1μs      3.49±0.06μs     0.90  indexing_engines.NumericEngineIndexing.time_get_loc_near_middle((<class 'pandas._libs.index.UInt8Engine'>, <class 'numpy.uint8'>), 'monotonic_incr', False, 2000000)
-      8.39±0.2ms       7.55±0.2ms     0.90  algorithms.Duplicated.time_duplicated(False, False, 'datetime64[ns, tz]')
-        48.5±1ms       43.6±0.5ms     0.90  rolling.Pairwise.time_groupby(({'window': 10}, 'rolling'), 'corr', True)
-      7.30±0.1ms      6.56±0.09ms     0.90  indexing_engines.NumericEngineIndexing.time_get_loc_near_middle((<class 'pandas._libs.index.UInt8Engine'>, <class 'numpy.uint8'>), 'monotonic_decr', False, 2000000)
-      48.2±0.5μs       43.3±0.6μs     0.90  ctors.SeriesConstructors.time_series_constructor(<function no_change>, True, 'int')
-      67.9±0.8ms         60.9±1ms     0.90  io.json.ToJSONWide.time_to_json('values', 'df_date_idx')
-       180±0.7ms          161±1ms     0.89  io.json.ToJSONISO.time_iso_format('records')
-         146±1ms          131±2ms     0.89  io.json.ToJSONLines.time_delta_int_tstamp_lines
-        170±20μs          151±1μs     0.89  series_methods.NanOps.time_func('sem', 1000, 'Int64')
-     3.64±0.05ms       3.24±0.2ms     0.89  inference.ToDatetimeISO8601.time_iso8601_format
-        432±60μs          385±2μs     0.89  arithmetic.ApplyIndex.time_apply_index(<MonthBegin>)
-       170±0.8ms          151±1ms     0.89  io.json.ToJSONISO.time_iso_format('values')
-      51.3±0.9μs       45.5±0.6μs     0.89  ctors.SeriesConstructors.time_series_constructor(<function no_change>, True, 'float')
-         135±6μs          120±3μs     0.89  series_methods.Mode.time_mode(1000, 'int')
-     8.45±0.08ms      7.47±0.05ms     0.88  algorithms.Duplicated.time_duplicated(False, False, 'datetime64[ns]')
-        376±10μs          332±8μs     0.88  reindex.Reindex.time_reindex_columns
-        80.4±3ms         71.0±1ms     0.88  io.json.ToJSONWide.time_to_json('split', 'df_date_idx')
-      8.96±0.3ms      7.87±0.09ms     0.88  frame_methods.Shift.time_shift(0)
-     3.53±0.04ms      3.10±0.08ms     0.88  inference.ToDatetimeISO8601.time_iso8601_format_no_sep
-         136±2ms          119±2ms     0.87  io.json.ToJSON.time_to_json('index', 'df_int_floats')
-      1.55±0.2ms      1.34±0.01ms     0.87  rolling.Methods.time_method('Series', ('rolling', {'window': 1000}), 'int', 'mean')
-         113±1ms         97.9±2ms     0.87  io.json.ToJSONWide.time_to_json('records', 'df_int_float_str')
-         131±1ms          113±1ms     0.86  io.json.ToJSONWide.time_to_json('index', 'df_int_floats')
-       135±0.6ms          116±2ms     0.86  io.json.ToJSON.time_to_json('index', 'df_int_float_str')
-     5.43±0.07ms      4.68±0.07ms     0.86  algorithms.Duplicated.time_duplicated(False, False, 'uint')
-         120±1ms          103±3ms     0.86  io.json.ToJSONWide.time_to_json('index', 'df_td_int_ts')
-      1.94±0.2ms      1.66±0.03ms     0.86  rolling.Quantile.time_quantile('Series', 10, 'int', 1, 'higher')
-       97.7±20μs       83.5±0.7μs     0.85  series_methods.NanOps.time_func('median', 1000, 'Int64')
-      29.6±0.9ms       25.2±0.2ms     0.85  rolling.Pairwise.time_groupby(({'window': 1000}, 'rolling'), 'corr', False)
-      4.32±0.3ms      3.65±0.05ms     0.85  arithmetic.MixedFrameWithSeriesAxis.time_frame_op_with_series_axis1('lt')
-         113±2ms         95.2±1ms     0.84  io.json.ToJSONWide.time_to_json('records', 'df_int_floats')
-         126±1ms          106±2ms     0.84  io.json.ToJSON.time_to_json('index', 'df_td_int_ts')
-     2.32±0.04ms      1.94±0.02ms     0.84  categoricals.Indexing.time_align
-         118±1ms         98.3±2ms     0.84  io.json.ToJSON.time_to_json('records', 'df_int_floats')
-      98.0±0.4ms       81.6±0.8ms     0.83  io.json.ToJSONWide.time_to_json('split', 'df_int_floats')
-         118±3ms         98.2±2ms     0.83  io.json.ToJSON.time_to_json('records', 'df_int_float_str')
-         100±8μs       82.8±0.9μs     0.83  algos.isin.IsinAlmostFullWithRandomInt.time_isin(<class 'numpy.int64'>, 11, 'outside')
-       102±0.7ms         84.1±2ms     0.83  io.json.ToJSONWide.time_to_json('split', 'df_int_float_str')
-     4.40±0.08ms       3.63±0.1ms     0.82  algorithms.Duplicated.time_duplicated(False, 'first', 'uint')
-       100±0.8ms         82.2±1ms     0.82  io.json.ToJSONWide.time_to_json('records', 'df_td_int_ts')
-      12.8±0.2μs       10.5±0.2μs     0.82  period.Indexing.time_series_loc
-        11.5±1ms       9.39±0.2ms     0.82  groupby.GroupByMethods.time_dtype_as_field('int16', 'skew', 'direct', 5)
-      94.9±0.7ms         77.5±1ms     0.82  io.json.ToJSON.time_to_json('values', 'df_int_floats')
-       105±0.9ms         85.8±2ms     0.82  io.json.ToJSON.time_to_json('split', 'df_int_float_str')
-      3.24±0.3ms      2.64±0.02ms     0.82  rolling.Methods.time_method('DataFrame', ('rolling', {'window': 1000}), 'float', 'min')
-         104±1ms         84.2±1ms     0.81  io.json.ToJSON.time_to_json('split', 'df_int_floats')
-        60.9±1μs         49.2±2μs     0.81  inference.ToNumeric.time_from_str('ignore')
-       108±0.6ms         87.0±1ms     0.81  io.json.ToJSON.time_to_json('records', 'df_td_int_ts')
-        88.0±1ms       70.7±0.6ms     0.80  io.json.ToJSONWide.time_to_json('split', 'df_td_int_ts')
-        92.2±1ms         73.7±1ms     0.80  io.json.ToJSONWide.time_to_json('values', 'df_int_float_str')
-        31.1±3ms       24.8±0.2ms     0.80  rolling.Pairwise.time_groupby(({'window': 1000}, 'rolling'), 'cov', False)
-      95.6±0.7ms       76.2±0.8ms     0.80  io.json.ToJSON.time_to_json('values', 'df_int_float_str')
-        90.0±1ms       71.6±0.8ms     0.80  io.json.ToJSONWide.time_to_json('values', 'df_int_floats')
-      11.2±0.2μs       8.87±0.5μs     0.79  timedelta.TimedeltaIndexing.time_series_loc
-      93.5±0.7ms         73.8±4ms     0.79  groupby.DateAttributes.time_len_groupby_object
-      95.0±0.7ms       74.8±0.9ms     0.79  io.json.ToJSON.time_to_json('split', 'df_td_int_ts')
-      78.9±0.8ms         61.3±2ms     0.78  io.json.ToJSONWide.time_to_json('values', 'df_td_int_ts')
-        84.4±2ms         65.3±2ms     0.77  io.json.ToJSON.time_to_json('values', 'df_td_int_ts')
-       433±100μs          323±6μs     0.75  algos.isin.IsIn.time_isin('object')
-        208±50μs          151±4μs     0.73  algos.isin.IsIn.time_isin_empty('Int64')
-        305±80μs          218±2μs     0.71  algos.isin.IsIn.time_isin_categorical('string[pyarrow]')
-        75.6±5ms         53.3±2ms     0.71  timeseries.DatetimeIndex.time_to_pydatetime('tz_aware')
-        101±30μs         71.1±1μs     0.70  algos.isin.IsIn.time_isin_mismatched_dtype('datetime64[ns]')
-       85.0±10μs       59.2±0.6μs     0.70  algos.isin.IsIn.time_isin_mismatched_dtype('bool')
-      4.98±0.3ms      3.31±0.05ms     0.66  series_methods.Map.time_map('Series', 'object')
-        22.7±1ms       13.8±0.9ms     0.61  groupby.Apply.time_copy_overhead_single_col(5)
-         267±2ms        162±0.9ms     0.61  groupby.Apply.time_copy_overhead_single_col(4)
-      12.8±0.1μs       7.64±0.2μs     0.60  ctors.SeriesDtypesConstructors.time_index_from_array_floats
-        46.8±1μs       27.2±0.5μs     0.58  series_methods.ToFrame.time_to_frame('datetime64[ns]', None)
-        45.2±1μs       26.3±0.5μs     0.58  series_methods.ToFrame.time_to_frame('int64', None)
-      45.1±0.5μs       25.3±0.4μs     0.56  series_methods.ToFrame.time_to_frame('category', None)
-      45.9±0.8μs       25.6±0.4μs     0.56  series_methods.ToFrame.time_to_frame('Int64', None)
-      33.1±0.5ms       18.3±0.9ms     0.55  groupby.Apply.time_copy_function_multi_col(5)
-         898±8ms          436±2ms     0.49  groupby.Apply.time_copy_function_multi_col(4)
-     3.95±0.04ms       1.91±0.2ms     0.48  io.csv.ReadCSVDInferDatetimeFormat.time_read_csv(True, 'iso8601')
-     3.20±0.08μs      1.46±0.03μs     0.46  frame_methods.ToNumpy.time_to_numpy_tall
-     3.37±0.07μs      1.43±0.02μs     0.43  frame_methods.ToNumpy.time_to_numpy_wide
-     2.84±0.02μs      1.14±0.04μs     0.40  frame_methods.ToNumpy.time_values_wide
-     3.04±0.07μs      1.13±0.02μs     0.37  frame_methods.ToNumpy.time_values_tall
-         293±2μs         98.5±2μs     0.34  reshape.Explode.time_explode(100, 3)
-         504±4μs          109±1μs     0.22  reshape.Explode.time_explode(100, 5)
-     2.30±0.05ms          449±6μs     0.19  reshape.Explode.time_explode(1000, 3)
-     21.6±0.05ms      3.78±0.03ms     0.17  reshape.Explode.time_explode(10000, 3)
-      4.08±0.1ms          545±3μs     0.13  reshape.Explode.time_explode(1000, 5)
-        940±20μs          124±1μs     0.13  reshape.Explode.time_explode(100, 10)
-        39.8±1ms      4.75±0.06ms     0.12  reshape.Explode.time_explode(10000, 5)
-      8.49±0.2ms         710±20μs     0.08  reshape.Explode.time_explode(1000, 10)
-        82.7±1ms       6.43±0.1ms     0.08  reshape.Explode.time_explode(10000, 10)
-         261±2ms         16.7±1ms     0.06  inference.ToDatetimeInferDatetimeFormat.time_infer_datetime_format
-         132±1ms       7.20±0.3ms     0.05  inference.ToDatetimeISO8601.time_iso8601_infer_zero_tz_fromat
```
Guessing (hoping) those are mostly noisy benchmarks.

Maybe spot-check a few of the bad ones (like 1 benchmark per general "benchmark topic") with `timeit` just to confirm 
> Maybe spot-check a few of the bad ones (like 1 benchmark per general "benchmark topic") with timeit just to confirm

Doing these on the first few shows perf unchanged vs main.  Maybe I hadn't rebased when running asv before?  Anyway, re-running some of the asvs now.
re-ran everything that previously showed as over 1.40 and they all came back as unchanged, except for two groupby.Nth series benchmarks that came back as faster and pretty much _have_ to be noise
lgtm would add a whatsnew note
Thanks @jbrockmendel