catch complex nan in util.is_nan, de-dup+optimize libmissing, tests
State: closed

gets rid of is_null_datelike_scalar, which would, among other things, treat `np.float64('-0.0')` as `iNaT`.

Some overlap with #24619, merge conflicts should be small or zero.

- [x] closes #24607
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry


Labels:
name: Missing-data
description: np.nan, pd.NaT, pd.NA, dropna, isnull, interpolate
name: Complex
description: Complex Numbers

Comments:
# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/24628?src=pr&el=h1) Report
> Merging [#24628](https://codecov.io/gh/pandas-dev/pandas/pull/24628?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/cb31b2b0912c99e40b22a26e598e640548ea8f14?src=pr&el=desc) will **decrease** coverage by `0.01%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/24628/graphs/tree.svg?width=650&token=eZ4WkYLtcO&height=150&src=pr)](https://codecov.io/gh/pandas-dev/pandas/pull/24628?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #24628      +/-   ##
==========================================
- Coverage   92.38%   92.36%   -0.02%     
==========================================
  Files         166      166              
  Lines       52395    52395              
==========================================
- Hits        48403    48393      -10     
- Misses       3992     4002      +10
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `90.78% <100%> (-0.02%)` | :arrow_down: |
| #single | `42.99% <80%> (-0.01%)` | :arrow_down: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/24628?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/internals/blocks.py](https://codecov.io/gh/pandas-dev/pandas/pull/24628/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvaW50ZXJuYWxzL2Jsb2Nrcy5weQ==) | `94.21% <100%> (ø)` | :arrow_up: |
| [pandas/\_libs/tslibs/\_\_init\_\_.py](https://codecov.io/gh/pandas-dev/pandas/pull/24628/diff?src=pr&el=tree#diff-cGFuZGFzL19saWJzL3RzbGlicy9fX2luaXRfXy5weQ==) | `100% <100%> (ø)` | :arrow_up: |
| [pandas/core/dtypes/missing.py](https://codecov.io/gh/pandas-dev/pandas/pull/24628/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZHR5cGVzL21pc3NpbmcucHk=) | `88.06% <0%> (-5.12%)` | :arrow_down: |
| [pandas/util/testing.py](https://codecov.io/gh/pandas-dev/pandas/pull/24628/diff?src=pr&el=tree#diff-cGFuZGFzL3V0aWwvdGVzdGluZy5weQ==) | `88% <0%> (-0.1%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/24628?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/24628?src=pr&el=footer). Last update [cb31b2b...e07446c](https://codecov.io/gh/pandas-dev/pandas/pull/24628?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/24628?src=pr&el=h1) Report
> Merging [#24628](https://codecov.io/gh/pandas-dev/pandas/pull/24628?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/d106e9975100cd0f2080d7b1a6111f20fb64f906?src=pr&el=desc) will **not change** coverage.
> The diff coverage is `n/a`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/24628/graphs/tree.svg?width=650&token=eZ4WkYLtcO&height=150&src=pr)](https://codecov.io/gh/pandas-dev/pandas/pull/24628?src=pr&el=tree)

```diff
@@           Coverage Diff           @@
##           master   #24628   +/-   ##
=======================================
  Coverage   92.37%   92.37%           
=======================================
  Files         166      166           
  Lines       52379    52379           
=======================================
  Hits        48386    48386           
  Misses       3993     3993
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `90.8% <ø> (ø)` | :arrow_up: |
| #single | `43.01% <ø> (ø)` | :arrow_up: |


------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/24628?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/24628?src=pr&el=footer). Last update [d106e99...caf3ef8](https://codecov.io/gh/pandas-dev/pandas/pull/24628?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

> definitely needs a perf check
> prob need to run the whole suite

I'll get that going...  I expect a small speedup, but it'll be thoroughly drowned out in asv noise.
speed up is ok
just don’t want to have a slowdown :(
Since asvs are going to take a while and be all noise anyways, heres some itimeits in the interim:

```
In [3]: arr = np.array([pd.NaT for _ in range(10**6)], dtype=object)
In [4]: %timeit pd.isna(arr)

# PR
100 loops, best of 3: 9.27 ms per loop
100 loops, best of 3: 9.29 ms per loop
100 loops, best of 3: 9.4 ms per loop

# master
10 loops, best of 3: 20.5 ms per loop
10 loops, best of 3: 20.3 ms per loop
10 loops, best of 3: 20.3 ms per loop


In [7]: arr2 = np.array([None for _ in range(10**6)])
In [8]: %timeit pd.isna(arr2)

# PR
100 loops, best of 3: 9.32 ms per loop
100 loops, best of 3: 9.4 ms per loop
100 loops, best of 3: 9.52 ms per loop

# master
100 loops, best of 3: 17.2 ms per loop
100 loops, best of 3: 17.2 ms per loop
10 loops, best of 3: 17.3 ms per loop

In [11]: arr3 = np.array([pd.NaT.asm8 for _ in range(10**6)])
In [12]: %timeit pd.isna(arr3)

# PR
1000 loops, best of 3: 399 µs per loop
1000 loops, best of 3: 407 µs per loop
1000 loops, best of 3: 398 µs per loop

# master
1000 loops, best of 3: 414 µs per loop
1000 loops, best of 3: 412 µs per loop
1000 loops, best of 3: 383 µs per loop

In [16]: arr4 = np.arange(10**6)
In [17]: %timeit pd.isna(arr4)

# PR
1000 loops, best of 3: 1.17 ms per loop
1000 loops, best of 3: 1.16 ms per loop
1000 loops, best of 3: 1.17 ms per loop

# master
1000 loops, best of 3: 1.16 ms per loop
1000 loops, best of 3: 1.18 ms per loop
1000 loops, best of 3: 1.17 ms per loop

In [19]: %timeit pd.Period(pd.NaT)

# PR
1000000 loops, best of 3: 407 ns per loop
1000000 loops, best of 3: 372 ns per loop
1000000 loops, best of 3: 384 ns per loop

# master
1000000 loops, best of 3: 741 ns per loop
1000000 loops, best of 3: 473 ns per loop
1000000 loops, best of 3: 402 ns per loop

In [20]: freq = pd.offsets.Day()
In [21]: %timeit pd._libs.tslibs.period.extract_ordinals(arr, freq)

# PR
100 loops, best of 3: 4.33 ms per loop
100 loops, best of 3: 4.33 ms per loop
100 loops, best of 3: 4.33 ms per loop

# master
100 loops, best of 3: 11.3 ms per loop
100 loops, best of 3: 11.4 ms per loop
100 loops, best of 3: 11.4 ms per loop
```


can you merge master
asv finished overnight.  we need a better way to systematically profile/benchmark cython funcs...

```
taskset 4 asv continuous -f 1.1 -E virtualenv master HEAD
[...]
    before     after       ratio
  [cb31b2b0] [f254526b]
+   17.22ms    39.01ms      2.27  frame_ctor.FromLists.time_frame_from_lists
+   20.33ms    38.56ms      1.90  sparse.SparseArrayConstructor.time_sparse_array(0.1, 0, <class 'numpy.float64'>)
+  231.20μs   428.01μs      1.85  offset.OffsetDatetimeIndexArithmetic.time_add_offset(<YearBegin: month=1>)
+   15.33ms    27.41ms      1.79  timeseries.DatetimeAccessor.time_dt_accessor_day_name('UTC')
+  155.54μs   271.97μs      1.75  groupby.GroupByMethods.time_dtype_as_field('float', 'var', 'direct')
+  481.40ns   824.32ns      1.71  dtypes.Dtypes.time_pandas_dtype(dtype('<m8'))
+  161.73ms   271.05ms      1.68  groupby.GroupByMethods.time_dtype_as_field('int', 'unique', 'transformation')
+  185.67μs   308.19μs      1.66  stat_ops.Correlation.time_corr_series('pearson', True)
+  212.99μs   351.88μs      1.65  indexing_engines.NumericEngineIndexing.time_get_loc((<class 'pandas._libs.index.UInt32Engine'>, <class 'numpy.uint32'>), 'non_monotonic')
+  191.44μs   316.20μs      1.65  groupby.GroupByMethods.time_dtype_as_field('int', 'last', 'transformation')
+  347.04ms   570.30ms      1.64  groupby.DateAttributes.time_len_groupby_object
+    1.76ms     2.87ms      1.64  binary_ops.Ops2.time_frame_series_dot
+  376.96μs   612.31μs      1.62  groupby.GroupByMethods.time_dtype_as_group('int', 'sum', 'transformation')
+    5.73ms     9.22ms      1.61  sparse.Arithmetic.time_make_union(0.01, 0)
+  658.37μs     1.06ms      1.61  groupby.GroupByMethods.time_dtype_as_field('int', 'cummin', 'direct')
+  334.74μs   535.58μs      1.60  groupby.GroupByMethods.time_dtype_as_field('object', 'bfill', 'direct')
+  216.52μs   342.48μs      1.58  groupby.GroupByMethods.time_dtype_as_group('object', 'bfill', 'transformation')
+   20.58ms    32.42ms      1.58  sparse.SparseArrayConstructor.time_sparse_array(0.1, 0, <class 'numpy.int64'>)
+  527.57ms   830.92ms      1.57  groupby.GroupByMethods.time_dtype_as_field('float', 'mad', 'transformation')
+  773.80μs     1.20ms      1.55  groupby.GroupByMethods.time_dtype_as_group('int', 'sem', 'direct')
+    4.42ms     6.83ms      1.55  rolling.VariableWindowMethods.time_rolling('Series', '50s', 'int', 'kurt')
+  166.62μs   257.52μs      1.55  indexing.CategoricalIndexIndexing.time_getitem_bool_array('monotonic_decr')
+  239.91μs   369.35μs      1.54  indexing_engines.NumericEngineIndexing.time_get_loc((<class 'pandas._libs.index.UInt32Engine'>, <class 'numpy.uint32'>), 'monotonic_decr')
+   12.45ms    18.66ms      1.50  join_merge.Join.time_join_dataframe_index_shuffle_key_bigger_sort(True)
+  963.52μs     1.44ms      1.50  groupby.GroupByMethods.time_dtype_as_field('int', 'value_counts', 'direct')
+  517.68ms   774.78ms      1.50  groupby.GroupByMethods.time_dtype_as_field('float', 'mad', 'direct')
+    3.27ms     4.80ms      1.47  series_methods.ValueCounts.time_value_counts('float')
+    1.37ms     1.99ms      1.46  rolling.Quantile.time_quantile('DataFrame', 1000, 'int', 1, 'nearest')
+    3.94ms     5.54ms      1.40  rolling.VariableWindowMethods.time_rolling('DataFrame', '50s', 'float', 'max')
+    2.97ms     4.12ms      1.39  timeseries.DatetimeIndex.time_unique('tz_aware')
+    1.99ms     2.76ms      1.39  rolling.Quantile.time_quantile('Series', 1000, 'int', 0, 'higher')
+    2.52ms     3.47ms      1.38  timeseries.DatetimeIndex.time_unique('tz_local')
+  120.04ms   162.05ms      1.35  gil.ParallelGroupbyMethods.time_parallel(8, 'count')
+  196.38ns   262.30ns      1.34  multiindex_object.Integer.time_is_monotonic
+   90.60μs   120.87μs      1.33  indexing.NumericSeriesIndexing.time_loc_slice(<class 'pandas.core.indexes.numeric.Float64Index'>, 'unique_monotonic_inc')
+  137.90ms   181.95ms      1.32  categoricals.Constructor.time_with_nan
+  254.13ms   335.28ms      1.32  timeseries.ToDatetimeISO8601.time_iso8601_tz_spaceformat
+  382.67μs   498.02μs      1.30  groupby.GroupByMethods.time_dtype_as_field('int', 'sum', 'direct')
+   16.03ms    20.85ms      1.30  eval.Eval.time_add('python', 'all')
+  815.68μs     1.06ms      1.30  groupby.GroupByMethods.time_dtype_as_field('int', 'cumprod', 'transformation')
+  558.70μs   717.08μs      1.28  stat_ops.Correlation.time_corr_series('kendall', False)
+   23.29μs    29.78μs      1.28  offset.OffestDatetimeArithmetic.time_subtract(<QuarterEnd: startingMonth=3>)
+   10.04ms    12.73ms      1.27  index_object.SetOperations.time_operation('date_string', 'union')
+  301.81μs   381.48μs      1.26  groupby.GroupByMethods.time_dtype_as_field('int', 'std', 'direct')
+   15.38ms    19.43ms      1.26  join_merge.MergeAsof.time_on_int32
+  981.43ms      1.23s      1.26  frame_methods.Iteration.time_itertuples
+  121.47ms   151.74ms      1.25  gil.ParallelGroupbyMethods.time_parallel(8, 'var')
+    3.55ms     4.43ms      1.25  rolling.VariableWindowMethods.time_rolling('Series', '50s', 'int', 'mean')
+    3.23ms     4.03ms      1.25  rolling.VariableWindowMethods.time_rolling('Series', '1d', 'int', 'count')
+    1.38ms     1.72ms      1.24  rolling.Quantile.time_quantile('DataFrame', 1000, 'int', 1, 'lower')
+   27.43ms    33.90ms      1.24  rolling.Quantile.time_quantile('Series', 10, 'float', 0.5, 'higher')
+   20.61ms    25.36ms      1.23  binary_ops.Ops2.time_frame_int_mod
+  899.57ns     1.10μs      1.23  dtypes.Dtypes.time_pandas_dtype(<class 'pandas.core.arrays.integer.UInt8Dtype'>)
+    1.13ms     1.38ms      1.23  binary_ops.Timeseries.time_series_timestamp_compare('US/Eastern')
+    6.01ms     7.33ms      1.22  inference.ToNumeric.time_from_str('coerce')
+   63.01ms    76.68ms      1.22  rolling.Methods.time_rolling('Series', 1000, 'float', 'median')
+  591.71μs   718.63μs      1.21  ctors.SeriesConstructors.time_series_constructor(<function SeriesConstructors.<lambda> at 0x7f87818012f0>, True)
+   23.88ms    28.87ms      1.21  frame_methods.Isnull.time_isnull_strngs
+    1.93ms     2.33ms      1.21  categoricals.Concat.time_concat
+    2.67ms     3.23ms      1.21  rolling.VariableWindowMethods.time_rolling('DataFrame', '1h', 'int', 'mean')
+  935.36μs     1.13ms      1.20  binary_ops.Timeseries.time_timestamp_series_compare(None)
+   97.73μs   117.51μs      1.20  frame_ctor.FromSeries.time_mi_series
+   61.43ms    73.72ms      1.20  gil.ParallelGroupbyMethods.time_parallel(4, 'var')
+    2.60ms     3.11ms      1.20  rolling.VariableWindowMethods.time_rolling('DataFrame', '50s', 'float', 'mean')
+    7.47ms     8.94ms      1.20  categoricals.ValueCounts.time_value_counts(False)
+    7.09ms     8.49ms      1.20  categoricals.ValueCounts.time_value_counts(True)
+  145.75ms   173.66ms      1.19  frame_methods.Dropna.time_dropna('all', 0)
+    6.71μs     7.95μs      1.19  timestamp.TimestampOps.time_normalize(None)
+   11.93μs    14.13μs      1.18  dtypes.Dtypes.time_pandas_dtype('UInt64')
+   31.17ms    36.79ms      1.18  gil.ParallelGroupbyMethods.time_parallel(2, 'min')
+    5.63ms     6.63ms      1.18  period.DataFramePeriodColumn.time_set_index
+    6.67μs     7.84μs      1.17  offset.OnOffset.time_on_offset(<SemiMonthEnd: day_of_month=15>)
+    9.80μs    11.51μs      1.17  timestamp.TimestampProperties.time_is_quarter_start(<UTC>, 'B')
+    9.95μs    11.68μs      1.17  timestamp.TimestampProperties.time_is_year_end(None, 'B')
+  975.55ns     1.14μs      1.17  period.PeriodProperties.time_property('M', 'is_leap_year')
+  220.40μs   257.37μs      1.17  groupby.GroupByMethods.time_dtype_as_group('object', 'bfill', 'direct')
+    1.12ms     1.30ms      1.17  binary_ops.Timeseries.time_timestamp_series_compare('US/Eastern')
+    9.84μs    11.47μs      1.17  timestamp.TimestampProperties.time_is_month_start(None, 'B')
+   13.82μs    16.10μs      1.16  offset.OffestDatetimeArithmetic.time_add(<YearBegin: month=1>)
+  401.18μs   464.91μs      1.16  frame_methods.Isnull.time_isnull
+    6.51μs     7.52μs      1.16  timestamp.TimestampOps.time_normalize(tzutc())
+   79.36ms    91.67ms      1.16  binary_ops.Ops2.time_frame_dot
+    1.50ms     1.74ms      1.16  series_methods.NSort.time_nsmallest('all')
+    2.67μs     3.08μs      1.15  dtypes.DtypesInvalid.time_pandas_dtype_invalid('list-string')
+    2.11ms     2.44ms      1.15  groupby.RankWithTies.time_rank_ties('float64', 'min')
+    3.56ms     4.10ms      1.15  rolling.VariableWindowMethods.time_rolling('DataFrame', '50s', 'float', 'std')
+    3.64ms     4.19ms      1.15  rolling.VariableWindowMethods.time_rolling('DataFrame', '50s', 'int', 'std')
+     1.55s      1.77s      1.14  groupby.GroupByMethods.time_dtype_as_field('int', 'describe', 'transformation')
+    5.50μs     6.28μs      1.14  index_object.Indexing.time_get_loc('Int')
+    2.48ms     2.84ms      1.14  rolling.Quantile.time_quantile('Series', 1000, 'float', 1, 'midpoint')
+    2.45ms     2.79ms      1.14  rolling.Quantile.time_quantile('Series', 1000, 'float', 0, 'higher')
+    2.66ms     3.03ms      1.14  rolling.ExpandingMethods.time_expanding('Series', 'float', 'std')
+    1.32ms     1.51ms      1.14  frame_methods.Equals.time_frame_float_equal
+  883.65ns     1.01μs      1.14  period.PeriodProperties.time_property('min', 'minute')
+   26.93ms    30.57ms      1.14  frame_ctor.FromDicts.time_list_of_dict
+    2.40μs     2.71μs      1.13  indexing_engines.NumericEngineIndexing.time_get_loc((<class 'pandas._libs.index.Int64Engine'>, <class 'numpy.int64'>), 'monotonic_incr')
+  123.33ms   138.78ms      1.13  categoricals.Rank.time_rank_string
+   10.86ms    12.21ms      1.13  eval.Eval.time_mult('numexpr', 1)
+   16.56μs    18.56μs      1.12  timestamp.TimestampConstruction.time_parse_iso8601_tz
+   99.38ms   111.35ms      1.12  frame_methods.Apply.time_apply_user_func
+   10.46μs    11.71μs      1.12  timestamp.TimestampProperties.time_is_quarter_end(tzutc(), 'B')
+  112.89ms   126.36ms      1.12  gil.ParallelGroupbyMethods.time_parallel(8, 'min')
+   10.99ms    12.29ms      1.12  categoricals.SetCategories.time_set_categories
+    9.93μs    11.08μs      1.12  timestamp.TimestampProperties.time_is_year_end(tzutc(), 'B')
+    2.40ms     2.68ms      1.12  rolling.VariableWindowMethods.time_rolling('DataFrame', '1d', 'float', 'sum')
+    4.37ms     4.87ms      1.12  rolling.VariableWindowMethods.time_rolling('Series', '1d', 'int', 'std')
+    2.45ms     2.73ms      1.11  rolling.VariableWindowMethods.time_rolling('DataFrame', '1d', 'int', 'count')
+    4.50ms     5.01ms      1.11  strings.Cat.time_cat(0, None, None, 0.0)
+    3.49ms     3.89ms      1.11  rolling.VariableWindowMethods.time_rolling('DataFrame', '1h', 'float', 'min')
+   26.50ms    29.43ms      1.11  io.sql.WriteSQLDtypes.time_to_sql_dataframe_column('sqlite', 'bool')
+   71.63ms    79.53ms      1.11  strings.Methods.time_findall
+    3.27ms     3.63ms      1.11  rolling.VariableWindowMethods.time_rolling('DataFrame', '1d', 'int', 'skew')
+  105.80ms   117.40ms      1.11  gil.ParallelGroupbyMethods.time_loop(8, 'min')
+   19.13ms    21.21ms      1.11  stat_ops.FrameOps.time_op('median', 'int', 1, True)
+    5.39ms     5.97ms      1.11  strings.Cat.time_cat(0, ',', '-', 0.001)
+  870.67μs   963.29μs      1.11  groupby.GroupByMethods.time_dtype_as_group('int', 'rank', 'direct')
+   19.02ms    21.04ms      1.11  sparse.SparseArrayConstructor.time_sparse_array(0.01, nan, <class 'object'>)
+    2.55ms     2.82ms      1.11  rolling.VariableWindowMethods.time_rolling('DataFrame', '1d', 'float', 'mean')
+    2.37ms     2.62ms      1.11  rolling.VariableWindowMethods.time_rolling('DataFrame', '1d', 'float', 'count')
+    2.64ms     2.92ms      1.11  rolling.VariableWindowMethods.time_rolling('DataFrame', '1d', 'int', 'mean')
+    1.16ms     1.28ms      1.11  categoricals.Constructor.time_datetimes_with_nat
+  501.84ns   554.64ns      1.11  dtypes.Dtypes.time_pandas_dtype(period[D])
+    3.51ms     3.87ms      1.11  rolling.VariableWindowMethods.time_rolling('DataFrame', '1h', 'int', 'kurt')
+    3.41ms     3.76ms      1.10  rolling.VariableWindowMethods.time_rolling('DataFrame', '50s', 'float', 'kurt')
+    4.17ms     4.60ms      1.10  frame_methods.Fillna.time_frame_fillna(True, 'bfill')
+    3.71μs     4.09μs      1.10  indexing.CategoricalIndexIndexing.time_getitem_scalar('monotonic_decr')
+    3.46ms     3.82ms      1.10  rolling.VariableWindowMethods.time_rolling('DataFrame', '1d', 'int', 'kurt')
+    1.30ms     1.44ms      1.10  series_methods.NSort.time_nsmallest('last')
+    5.42ms     5.98ms      1.10  strings.Cat.time_cat(0, ',', None, 0.001)
+    5.28ms     5.81ms      1.10  strings.Cat.time_cat(0, None, None, 0.001)
+  409.88μs   451.20μs      1.10  frame_methods.Isnull.time_isnull_floats_no_null
+    3.88ms     4.27ms      1.10  rolling.VariableWindowMethods.time_rolling('DataFrame', '1d', 'int', 'std')
+    5.25ms     5.77ms      1.10  strings.Cat.time_cat(0, None, '-', 0.001)
-  608.11μs   552.26μs      0.91  stat_ops.SeriesOps.time_op('std', 'float', False)
-  221.80μs   201.08μs      0.91  timedelta.TimedeltaIndexing.time_intersection
-  116.28ms   104.98ms      0.90  gil.ParallelGroupbyMethods.time_parallel(8, 'sum')
-    1.01μs   908.60ns      0.90  period.PeriodProperties.time_property('M', 'quarter')
-    1.22ms     1.09ms      0.90  index_object.Ops.time_subtract('int')
-   15.26μs    13.72μs      0.90  offset.OffestDatetimeArithmetic.time_add(<YearEnd: month=12>)
-    6.99ms     6.27ms      0.90  algorithms.Factorize.time_factorize_float(False)
-    1.47ms     1.32ms      0.90  inference.NumericInferOps.time_divide(<class 'numpy.uint8'>)
-   60.55ms    54.25ms      0.90  gil.ParallelGroupbyMethods.time_parallel(4, 'prod')
-    5.14ms     4.59ms      0.89  groupby.Transform.time_transform_ufunc_max
-   22.07μs    19.72μs      0.89  offset.OffestDatetimeArithmetic.time_subtract_10(<BusinessMonthEnd>)
-   71.43μs    63.77μs      0.89  indexing.NumericSeriesIndexing.time_ix_scalar(<class 'pandas.core.indexes.numeric.Float64Index'>, 'nonunique_monotonic_inc')
-  736.99μs   656.99μs      0.89  categoricals.Constructor.time_existing_categorical
-   10.56ms     9.41ms      0.89  period.PeriodIndexConstructor.time_from_ints('D', True)
-    1.21ms     1.08ms      0.89  index_object.Ops.time_add('float')
-   95.88μs    85.16μs      0.89  indexing.NumericSeriesIndexing.time_iloc_list_like(<class 'pandas.core.indexes.numeric.Int64Index'>, 'unique_monotonic_inc')
-    1.98ms     1.76ms      0.89  rolling.Quantile.time_quantile('Series', 10, 'int', 1, 'linear')
-  115.06μs   101.77μs      0.88  offset.OffestDatetimeArithmetic.time_add_10(<CustomBusinessMonthEnd>)
-    1.20ms     1.06ms      0.88  index_object.Ops.time_add('int')
-   87.20ms    76.93ms      0.88  gil.ParallelFactorize.time_parallel(8)
-    1.98ms     1.74ms      0.88  rolling.Quantile.time_quantile('Series', 10, 'int', 0, 'midpoint')
-  402.57ns   352.43ns      0.88  timestamp.TimestampProperties.time_is_month_end(None, None)
-    1.23ms     1.07ms      0.87  index_object.Ops.time_subtract('float')
-   44.70ms    38.90ms      0.87  gil.ParallelFactorize.time_parallel(4)
-   26.37μs    22.94μs      0.87  offset.OffestDatetimeArithmetic.time_subtract_10(<SemiMonthEnd: day_of_month=15>)
-  256.30ns   222.82ns      0.87  timestamp.TimestampOps.time_tz_localize(tzutc())
-  106.04μs    92.07μs      0.87  indexing.NumericSeriesIndexing.time_iloc_array(<class 'pandas.core.indexes.numeric.Float64Index'>, 'nonunique_monotonic_inc')
-    7.67μs     6.63μs      0.86  timestamp.TimestampOps.time_tz_convert('US/Eastern')
-    6.31ms     5.44ms      0.86  reshape.Cut.time_cut_datetime(4)
-   64.64μs    55.61μs      0.86  indexing.NumericSeriesIndexing.time_ix_scalar(<class 'pandas.core.indexes.numeric.Int64Index'>, 'unique_monotonic_inc')
-  824.57μs   709.09μs      0.86  indexing.NumericSeriesIndexing.time_getitem_array(<class 'pandas.core.indexes.numeric.Int64Index'>, 'unique_monotonic_inc')
-    4.83ms     4.13ms      0.86  rolling.VariableWindowMethods.time_rolling('Series', '1h', 'int', 'min')
-   35.77ms    30.56ms      0.85  gil.ParallelGroupbyMethods.time_parallel(2, 'last')
-   17.50μs    14.94μs      0.85  offset.OffestDatetimeArithmetic.time_add(<QuarterEnd: startingMonth=3>)
-    2.10ms     1.79ms      0.85  inference.ToNumericDowncast.time_downcast('datetime64', 'float')
-   11.57ms     9.87ms      0.85  groupby.Size.time_multi_size
-   36.87ms    31.35ms      0.85  gil.ParallelGroupbyMethods.time_parallel(2, 'max')
-   11.32ms     9.30ms      0.82  io.sql.ReadSQLTableDtypes.time_read_sql_table_column('bool')
-   16.26μs    13.24μs      0.81  offset.OffestDatetimeArithmetic.time_add(<MonthEnd>)
-    2.74ms     2.22ms      0.81  replace.FillNa.time_fillna(False)
-   13.50ms    10.96ms      0.81  multiindex_object.GetLoc.time_large_get_loc_warm
-  106.43ms    84.09ms      0.79  reshape.Unstack.time_full_product('int')
-  129.16ms   101.22ms      0.78  rolling.ExpandingMethods.time_expanding('Series', 'float', 'median')
-  225.96ms   176.88ms      0.78  reshape.Unstack.time_without_last_row('int')
-  202.61μs   156.67μs      0.77  join_merge.Concat.time_concat_empty_left(0)
-   18.52μs    14.22μs      0.77  offset.OffestDatetimeArithmetic.time_add(<BusinessYearEnd: month=12>)
-  444.75ms   332.13ms      0.75  indexing.NonNumericSeriesIndexing.time_getitem_label_slice('string', 'nonunique_monotonic_inc')
-  151.90ms   111.63ms      0.73  reshape.Pivot.time_reshape_pivot_time_series
-    1.90μs     1.40μs      0.73  timedelta.TimedeltaConstructor.time_from_missing
-   17.12ms    12.52ms      0.73  reshape.GetDummies.time_get_dummies_1d
-    2.91ms     2.12ms      0.73  rolling.Methods.time_rolling('DataFrame', 10, 'int', 'skew')
-    2.78ms     2.02ms      0.73  rolling.Methods.time_rolling('DataFrame', 10, 'float', 'max')
-  435.86ms   315.83ms      0.72  indexing.NonNumericSeriesIndexing.time_getitem_scalar('string', 'nonunique_monotonic_inc')
-  458.31ms   331.94ms      0.72  indexing.NonNumericSeriesIndexing.time_getitem_list_like('string', 'nonunique_monotonic_inc')
-    2.85ms     2.05ms      0.72  rolling.Methods.time_rolling('DataFrame', 10, 'float', 'min')
-  431.19ms   309.79ms      0.72  indexing.NonNumericSeriesIndexing.time_getitem_scalar('string', 'unique_monotonic_inc')
-    3.32ms     2.39ms      0.72  indexing.NumericSeriesIndexing.time_ix_scalar(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'nonunique_monotonic_inc')
-  101.84μs    72.85μs      0.72  indexing.NumericSeriesIndexing.time_ix_scalar(<class 'pandas.core.indexes.numeric.Float64Index'>, 'unique_monotonic_inc')
-    5.10ms     3.65ms      0.71  replace.FillNa.time_replace(False)
-   96.54ms    68.90ms      0.71  indexing.NonNumericSeriesIndexing.time_getitem_list_like('datetime', 'nonunique_monotonic_inc')
-    6.07ms     4.33ms      0.71  algorithms.Duplicated.time_duplicated_float('last')
-  444.25ms   316.08ms      0.71  indexing.NonNumericSeriesIndexing.time_getitem_list_like('string', 'unique_monotonic_inc')
-  599.03μs   421.70μs      0.70  indexing.NumericSeriesIndexing.time_getitem_list_like(<class 'pandas.core.indexes.numeric.Float64Index'>, 'nonunique_monotonic_inc')
-   41.02ms    28.84ms      0.70  rolling.Methods.time_rolling('DataFrame', 10, 'float', 'median')
-    3.91ms     2.74ms      0.70  rolling.Methods.time_rolling('DataFrame', 10, 'float', 'count')
-   58.66ms    40.84ms      0.70  reshape.Cut.time_qcut_float(4)
-    3.60ms     2.50ms      0.69  rolling.ExpandingMethods.time_expanding('Series', 'float', 'max')
-   20.98μs    14.48μs      0.69  offset.OffestDatetimeArithmetic.time_apply(<BusinessMonthEnd>)
-    3.26ms     2.25ms      0.69  rolling.Methods.time_rolling('DataFrame', 10, 'int', 'kurt')
-    1.90ms     1.30ms      0.69  rolling.Methods.time_rolling('DataFrame', 10, 'int', 'sum')
-  296.90ms   204.38ms      0.69  indexing.NumericSeriesIndexing.time_getitem_list_like(<class 'pandas.core.indexes.numeric.Float64Index'>, 'unique_monotonic_inc')
-    2.58ms     1.77ms      0.69  rolling.Methods.time_rolling('DataFrame', 10, 'float', 'std')
-   31.41μs    21.53μs      0.69  offset.OffestDatetimeArithmetic.time_subtract(<BusinessQuarterEnd: startingMonth=3>)
-    3.62ms     2.48ms      0.68  rolling.ExpandingMethods.time_expanding('Series', 'float', 'min')
-   34.35ms    23.39ms      0.68  reshape.Cut.time_qcut_int(4)
-   61.32ms    41.74ms      0.68  reshape.Cut.time_qcut_float(10)
-    2.84ms     1.93ms      0.68  reshape.SimpleReshape.time_unstack
-    4.03ms     2.74ms      0.68  rolling.Methods.time_rolling('DataFrame', 10, 'int', 'count')
-    1.83ms     1.24ms      0.68  offset.OffsetSeriesArithmetic.time_add_offset(<DateOffset: days=2, months=2>)
-    2.63ms     1.78ms      0.68  rolling.Methods.time_rolling('DataFrame', 1000, 'float', 'std')
-   13.52ms     9.15ms      0.68  index_object.Ops.time_modulo('int')
-   21.74μs    14.69μs      0.68  offset.OffestDatetimeArithmetic.time_apply(<MonthBegin>)
-   20.60ms    13.85ms      0.67  reshape.Cut.time_qcut_datetime(10)
-   17.99ms    11.99ms      0.67  reshape.Cut.time_qcut_timedelta(4)
-  208.33μs   138.86μs      0.67  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<CustomBusinessMonthBegin>)
-   19.86ms    13.10ms      0.66  reshape.Cut.time_qcut_timedelta(10)
-   32.98μs    21.59μs      0.65  offset.OffestDatetimeArithmetic.time_add_10(<YearBegin: month=1>)
-   19.64ms    12.80ms      0.65  reshape.Cut.time_qcut_datetime(4)
-   22.45μs    14.56μs      0.65  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<YearEnd: month=12>)
-   83.04μs    53.54μs      0.64  indexing.NumericSeriesIndexing.time_ix_scalar(<class 'pandas.core.indexes.numeric.Int64Index'>, 'nonunique_monotonic_inc')
-   23.28μs    15.00μs      0.64  offset.OffestDatetimeArithmetic.time_apply(<BusinessQuarterEnd: startingMonth=3>)
-  327.07ms   208.84ms      0.64  indexing.NumericSeriesIndexing.time_getitem_lists(<class 'pandas.core.indexes.numeric.Float64Index'>, 'unique_monotonic_inc')
-  757.44μs   482.74μs      0.64  indexing.NumericSeriesIndexing.time_getitem_list_like(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'nonunique_monotonic_inc')
-   34.96μs    22.15μs      0.63  offset.OffestDatetimeArithmetic.time_add_10(<SemiMonthEnd: day_of_month=15>)
-   21.26μs    13.46μs      0.63  offset.OffestDatetimeArithmetic.time_apply(<BusinessQuarterBegin: startingMonth=3>)
-    8.19ms     5.17ms      0.63  rolling.EWMMethods.time_ewm('DataFrame', 1000, 'int', 'mean')
-   22.28μs    13.90μs      0.62  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<BusinessMonthBegin>)
-    3.33ms     2.08ms      0.62  indexing.NumericSeriesIndexing.time_getitem_scalar(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'nonunique_monotonic_inc')
-    2.15ms     1.33ms      0.62  rolling.Methods.time_rolling('DataFrame', 10, 'float', 'mean')
-   90.04ms    55.55ms      0.62  indexing.NumericSeriesIndexing.time_getitem_array(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'unique_monotonic_inc')
-   20.51μs    12.64μs      0.62  offset.OffestDatetimeArithmetic.time_apply(<YearEnd: month=12>)
-  334.32ms   205.93ms      0.62  indexing.NumericSeriesIndexing.time_getitem_array(<class 'pandas.core.indexes.numeric.Float64Index'>, 'unique_monotonic_inc')
-   89.01ms    54.82ms      0.62  indexing.NumericSeriesIndexing.time_getitem_list_like(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'unique_monotonic_inc')
-   96.35ms    59.33ms      0.62  indexing.NumericSeriesIndexing.time_getitem_lists(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'unique_monotonic_inc')
-    2.64ms     1.62ms      0.62  rolling.ExpandingMethods.time_expanding('Series', 'float', 'mean')
-   25.95ms    15.95ms      0.61  reshape.Cut.time_cut_float(4)
-  358.76μs   220.12μs      0.61  offset.OffsetDatetimeIndexArithmetic.time_add_offset(<MonthBegin>)
-    2.12ms     1.30ms      0.61  reshape.SparseIndex.time_unstack
-    6.10ms     3.71ms      0.61  reshape.Melt.time_melt_dataframe
-   35.28ms    21.36ms      0.61  reshape.Cut.time_qcut_int(10)
-    9.56ms     5.78ms      0.60  reshape.Cut.time_cut_timedelta(10)
-   10.33ms     6.24ms      0.60  reshape.Cut.time_cut_datetime(10)
-    1.19ms   716.20μs      0.60  indexing.NonNumericSeriesIndexing.time_getitem_list_like('datetime', 'unique_monotonic_inc')
-  871.28μs   521.85μs      0.60  indexing.NumericSeriesIndexing.time_getitem_list_like(<class 'pandas.core.indexes.numeric.Int64Index'>, 'unique_monotonic_inc')
-  243.57μs   145.63μs      0.60  offset.OffestDatetimeArithmetic.time_add_10(<CustomBusinessMonthBegin>)
-   24.07μs    14.35μs      0.60  offset.OffestDatetimeArithmetic.time_apply(<SemiMonthEnd: day_of_month=15>)
-  225.53ms   134.39ms      0.60  io.json.ToJSON.time_float_int_str_lines('split')
-  156.29μs    92.94μs      0.59  indexing.NumericSeriesIndexing.time_iloc_array(<class 'pandas.core.indexes.numeric.Float64Index'>, 'unique_monotonic_inc')
-  796.07μs   472.14μs      0.59  indexing.NumericSeriesIndexing.time_getitem_list_like(<class 'pandas.core.indexes.numeric.Int64Index'>, 'nonunique_monotonic_inc')
-  205.68μs   121.97μs      0.59  indexing.NumericSeriesIndexing.time_iloc_array(<class 'pandas.core.indexes.numeric.Int64Index'>, 'unique_monotonic_inc')
-   43.89μs    25.85μs      0.59  offset.OffestDatetimeArithmetic.time_apply(<Day>)
-    8.29ms     4.88ms      0.59  reshape.Cut.time_cut_timedelta(4)
-  555.21μs   324.63μs      0.58  indexing.NumericSeriesIndexing.time_ix_list_like(<class 'pandas.core.indexes.numeric.Float64Index'>, 'nonunique_monotonic_inc')
-  208.80μs   121.84μs      0.58  indexing.NumericSeriesIndexing.time_iloc_array(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'nonunique_monotonic_inc')
-   34.31μs    20.01μs      0.58  offset.OffestDatetimeArithmetic.time_add_10(<QuarterEnd: startingMonth=3>)
-   22.99μs    13.41μs      0.58  offset.OffestDatetimeArithmetic.time_apply(<BusinessYearBegin: month=1>)
-   77.41ms    45.09ms      0.58  reshape.Cut.time_cut_int(1000)
-  236.46μs   137.62μs      0.58  indexing.NonNumericSeriesIndexing.time_getitem_pos_slice('datetime', 'nonunique_monotonic_inc')
-     1.33s   769.30ms      0.58  reshape.Unstack.time_full_product('category')
-  417.02μs   240.58μs      0.58  indexing.NonNumericSeriesIndexing.time_getitem_label_slice('datetime', 'unique_monotonic_inc')
-   61.75μs    35.55μs      0.58  offset.OffestDatetimeArithmetic.time_add_10(<CustomBusinessDay>)
-   22.08μs    12.66μs      0.57  offset.OffestDatetimeArithmetic.time_apply(<MonthEnd>)
-  149.75ms    85.62ms      0.57  reshape.Cut.time_qcut_float(1000)
-   31.34ms    17.92ms      0.57  reshape.PivotTable.time_pivot_table
-   23.76μs    13.57μs      0.57  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<MonthEnd>)
-   28.32ms    16.16ms      0.57  reshape.Cut.time_cut_int(4)
-    9.69ms     5.52ms      0.57  sparse.ArithmeticBlock.time_make_union(nan)
-   32.37μs    18.43μs      0.57  offset.OffestDatetimeArithmetic.time_add_10(<BusinessYearBegin: month=1>)
-  177.23μs   100.74μs      0.57  indexing.NumericSeriesIndexing.time_getitem_slice(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'nonunique_monotonic_inc')
-    7.53ms     4.28ms      0.57  reshape.SimpleReshape.time_stack
-     1.39s   785.51ms      0.57  reshape.Unstack.time_without_last_row('category')
-   24.06μs    13.62μs      0.57  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<BusinessYearBegin: month=1>)
-  212.85μs   120.48μs      0.57  indexing.NumericSeriesIndexing.time_iloc_array(<class 'pandas.core.indexes.numeric.Int64Index'>, 'nonunique_monotonic_inc')
-    7.59ms     4.29ms      0.57  indexing.NumericSeriesIndexing.time_getitem_lists(<class 'pandas.core.indexes.numeric.Int64Index'>, 'unique_monotonic_inc')
-  215.23μs   121.65μs      0.57  indexing.NumericSeriesIndexing.time_iloc_array(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'unique_monotonic_inc')
-  455.34ns   256.47ns      0.56  timestamp.TimestampProperties.time_dayofweek(<UTC>, 'B')
-  146.35μs    82.36μs      0.56  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<CustomBusinessMonthEnd>)
-  355.95μs   200.29μs      0.56  indexing.NonNumericSeriesIndexing.time_getitem_pos_slice('datetime', 'unique_monotonic_inc')
-   28.07μs    15.69μs      0.56  offset.OffestDatetimeArithmetic.time_apply(<DateOffset: days=2, months=2>)
-   94.85ms    52.90ms      0.56  reshape.Cut.time_qcut_datetime(1000)
-  316.48μs   176.51μs      0.56  indexing.NonNumericSeriesIndexing.time_getitem_label_slice('datetime', 'nonunique_monotonic_inc')
-  258.81μs   144.05μs      0.56  offset.OffestDatetimeArithmetic.time_apply(<CustomBusinessMonthBegin>)
-  119.38ms    66.30ms      0.56  reshape.Cut.time_qcut_timedelta(1000)
-  233.74ms   129.79ms      0.56  groupby.MultiColumn.time_lambda_sum
-  418.13ms   232.04ms      0.55  reshape.WideToLong.time_wide_to_long_big
-  128.70μs    71.42μs      0.55  indexing.NonNumericSeriesIndexing.time_getitem_pos_slice('string', 'unique_monotonic_inc')
-   30.29ms    16.80ms      0.55  reshape.Cut.time_cut_float(10)
-   30.23ms    16.75ms      0.55  reshape.Cut.time_cut_int(10)
-  280.80μs   154.99μs      0.55  join_merge.Concat.time_concat_empty_right(0)
-  639.63ms   352.84ms      0.55  groupby.Apply.time_copy_overhead_single_col
-   24.68μs    13.60μs      0.55  offset.OffestDatetimeArithmetic.time_apply(<BusinessDay>)
-  116.35ms    64.09ms      0.55  reshape.Cut.time_cut_float(1000)
-  419.79μs   231.24μs      0.55  offset.OffsetDatetimeIndexArithmetic.time_add_offset(<QuarterBegin: startingMonth=3>)
-  160.96μs    88.27μs      0.55  indexing.NumericSeriesIndexing.time_getitem_slice(<class 'pandas.core.indexes.numeric.Float64Index'>, 'unique_monotonic_inc')
-    6.41μs     3.52μs      0.55  dtypes.Dtypes.time_pandas_dtype('datetime64[ns, UTC]')
-     1.62s   883.98ms      0.55  groupby.Apply.time_copy_function_multi_col
-   36.05μs    19.61μs      0.54  offset.OffestDatetimeArithmetic.time_add_10(<YearEnd: month=12>)
-   54.88ms    29.81ms      0.54  reshape.Cut.time_cut_datetime(1000)
-   40.88μs    22.20μs      0.54  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<CustomBusinessDay>)
-  438.58μs   237.95μs      0.54  offset.OffsetDatetimeIndexArithmetic.time_add_offset(<MonthEnd>)
-  185.23μs   100.48μs      0.54  indexing.NumericSeriesIndexing.time_getitem_slice(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'unique_monotonic_inc')
-  378.23ns   204.99ns      0.54  timestamp.TimestampProperties.time_microsecond(None, None)
-   34.99μs    18.88μs      0.54  offset.OffestDatetimeArithmetic.time_add_10(<BusinessQuarterBegin: startingMonth=3>)
-   43.65μs    23.51μs      0.54  offset.OffestDatetimeArithmetic.time_subtract_10(<YearEnd: month=12>)
-   27.58μs    14.82μs      0.54  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<SemiMonthEnd: day_of_month=15>)
-   26.17μs    14.04μs      0.54  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<BusinessQuarterEnd: startingMonth=3>)
-   30.69μs    16.40μs      0.53  offset.OffestDatetimeArithmetic.time_add(<SemiMonthEnd: day_of_month=15>)
-  185.72μs    99.13μs      0.53  indexing.NumericSeriesIndexing.time_ix_scalar(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'unique_monotonic_inc')
-  135.28μs    72.15μs      0.53  indexing.NonNumericSeriesIndexing.time_getitem_pos_slice('string', 'nonunique_monotonic_inc')
-   27.20μs    14.50μs      0.53  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<BusinessDay>)
-   46.70μs    24.71μs      0.53  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<Day>)
-   44.96μs    23.49μs      0.52  offset.OffestDatetimeArithmetic.time_subtract_10(<YearBegin: month=1>)
-  165.65μs    86.24μs      0.52  indexing.NumericSeriesIndexing.time_getitem_slice(<class 'pandas.core.indexes.numeric.Float64Index'>, 'nonunique_monotonic_inc')
-   35.73ms    18.51ms      0.52  groupby.Apply.time_scalar_function_multi_col
-  434.22ns   224.84ns      0.52  timestamp.TimestampOps.time_tz_localize(<UTC>)
-  498.19μs   256.90μs      0.52  offset.OffsetDatetimeIndexArithmetic.time_add_offset(<BusinessQuarterEnd: startingMonth=3>)
-   26.96μs    13.90μs      0.52  offset.OffestDatetimeArithmetic.time_add(<MonthBegin>)
-   24.18μs    12.46μs      0.52  offset.OffestDatetimeArithmetic.time_apply(<BusinessYearEnd: month=12>)
-     1.21s   623.03ms      0.51  reshape.GetDummies.time_get_dummies_1d_sparse
-   77.62ms    39.67ms      0.51  reshape.Cut.time_cut_timedelta(1000)
-   38.80μs    19.78μs      0.51  offset.OffestDatetimeArithmetic.time_add_10(<SemiMonthBegin: day_of_month=15>)
-   17.29μs     8.60μs      0.50  indexing.NonNumericSeriesIndexing.time_getitem_scalar('datetime', 'unique_monotonic_inc')
-   34.32μs    17.04μs      0.50  offset.OffestDatetimeArithmetic.time_add_10(<BusinessMonthBegin>)
-  107.62ms    53.27ms      0.50  reshape.Cut.time_qcut_int(1000)
-   28.91μs    14.29μs      0.49  offset.OffestDatetimeArithmetic.time_apply(<SemiMonthBegin: day_of_month=15>)
-   25.72μs    12.65μs      0.49  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<YearBegin: month=1>)
-   27.11ms    13.30ms      0.49  rolling.EWMMethods.time_ewm('DataFrame', 10, 'float', 'std')
-   39.61μs    19.41μs      0.49  offset.OffestDatetimeArithmetic.time_add_10(<BusinessQuarterEnd: startingMonth=3>)
-   61.18μs    29.96μs      0.49  offset.OffestDatetimeArithmetic.time_subtract(<Day>)
-   27.51ms    13.39ms      0.49  rolling.EWMMethods.time_ewm('DataFrame', 10, 'int', 'std')
-   44.97μs    21.79μs      0.48  offset.OffestDatetimeArithmetic.time_subtract(<BusinessYearEnd: month=12>)
-   43.81μs    21.15μs      0.48  indexing.NumericSeriesIndexing.time_getitem_scalar(<class 'pandas.core.indexes.numeric.Float64Index'>, 'unique_monotonic_inc')
-  154.53μs    74.29μs      0.48  offset.OffestDatetimeArithmetic.time_add_10(<DateOffset: days=2, months=2>)
-  208.82μs   100.32μs      0.48  indexing.NumericSeriesIndexing.time_getitem_slice(<class 'pandas.core.indexes.numeric.Int64Index'>, 'nonunique_monotonic_inc')
-  161.33μs    77.24μs      0.48  offset.OffestDatetimeArithmetic.time_apply(<CustomBusinessMonthEnd>)
-   32.05μs    15.33μs      0.48  offset.OffestDatetimeArithmetic.time_add(<BusinessDay>)
-   27.94μs    13.33μs      0.48  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<BusinessMonthEnd>)
-   45.58μs    21.72μs      0.48  offset.OffestDatetimeArithmetic.time_apply(<CustomBusinessDay>)
-  211.74μs   100.89μs      0.48  indexing.NumericSeriesIndexing.time_getitem_slice(<class 'pandas.core.indexes.numeric.Int64Index'>, 'unique_monotonic_inc')
-   25.84μs    12.29μs      0.48  offset.OffestDatetimeArithmetic.time_apply(<YearBegin: month=1>)
-   32.31μs    15.19μs      0.47  offset.OffestDatetimeArithmetic.time_add(<SemiMonthBegin: day_of_month=15>)
-   10.73ms     5.04ms      0.47  rolling.EWMMethods.time_ewm('DataFrame', 10, 'float', 'mean')
-     5.85s      2.74s      0.47  replace.ReplaceDict.time_replace_series(True)
-   44.42μs    20.58μs      0.46  offset.OffestDatetimeArithmetic.time_subtract(<BusinessMonthEnd>)
-   30.35μs    14.03μs      0.46  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<BusinessQuarterBegin: startingMonth=3>)
-   11.16ms     5.16ms      0.46  rolling.EWMMethods.time_ewm('DataFrame', 10, 'int', 'mean')
-   37.65μs    17.36μs      0.46  offset.OffestDatetimeArithmetic.time_add(<DateOffset: days=2, months=2>)
-   20.37μs     9.21μs      0.45  indexing.NonNumericSeriesIndexing.time_getitem_scalar('datetime', 'nonunique_monotonic_inc')
-   47.98μs    21.67μs      0.45  offset.OffestDatetimeArithmetic.time_add_10(<BusinessDay>)
-   36.89μs    16.65μs      0.45  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<DateOffset: days=2, months=2>)
-   29.54μs    13.32μs      0.45  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<QuarterEnd: startingMonth=3>)
-   73.84μs    32.89μs      0.45  offset.OffestDatetimeArithmetic.time_add_10(<Day>)
-   41.24μs    18.26μs      0.44  offset.OffestDatetimeArithmetic.time_add_10(<BusinessMonthEnd>)
-   30.40μs    13.46μs      0.44  offset.OffestDatetimeArithmetic.time_apply(<BusinessMonthBegin>)
-   30.21μs    13.30μs      0.44  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<MonthBegin>)
-   40.74μs    17.89μs      0.44  offset.OffestDatetimeArithmetic.time_add_10(<MonthBegin>)
-   33.37μs    14.65μs      0.44  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<SemiMonthBegin: day_of_month=15>)
-   42.81μs    18.33μs      0.43  offset.OffestDatetimeArithmetic.time_add_10(<MonthEnd>)
-   45.78μs    19.45μs      0.42  offset.OffestDatetimeArithmetic.time_subtract(<BusinessQuarterBegin: startingMonth=3>)
-   32.09μs    13.57μs      0.42  offset.OffestDatetimeArithmetic.time_apply(<QuarterEnd: startingMonth=3>)
-  131.48μs    55.32μs      0.42  indexing.NumericSeriesIndexing.time_getitem_scalar(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'unique_monotonic_inc')
-   45.93μs    19.18μs      0.42  offset.OffestDatetimeArithmetic.time_add_10(<QuarterBegin: startingMonth=3>)
-   49.78μs    20.49μs      0.41  offset.OffestDatetimeArithmetic.time_subtract(<BusinessYearBegin: month=1>)
-   43.77μs    17.63μs      0.40  offset.OffestDatetimeArithmetic.time_add_10(<BusinessYearEnd: month=12>)
-  279.62ms   112.26ms      0.40  indexing.NumericSeriesIndexing.time_getitem_array(<class 'pandas.core.indexes.numeric.Float64Index'>, 'nonunique_monotonic_inc')
-  276.70ms   111.05ms      0.40  indexing.NumericSeriesIndexing.time_getitem_lists(<class 'pandas.core.indexes.numeric.Float64Index'>, 'nonunique_monotonic_inc')
-  205.20ms    80.89ms      0.39  indexing.NumericSeriesIndexing.time_ix_list_like(<class 'pandas.core.indexes.numeric.Float64Index'>, 'unique_monotonic_inc')
-   38.45μs    15.12μs      0.39  indexing.NumericSeriesIndexing.time_getitem_scalar(<class 'pandas.core.indexes.numeric.Float64Index'>, 'nonunique_monotonic_inc')
-  268.23ms    99.60ms      0.37  indexing.NumericSeriesIndexing.time_getitem_lists(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'nonunique_monotonic_inc')
-   32.55μs    12.08μs      0.37  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<BusinessYearEnd: month=12>)
-   34.47μs    12.62μs      0.37  offset.OffestDatetimeArithmetic.time_apply_np_dt64(<QuarterBegin: startingMonth=3>)
-  275.25ms    96.82ms      0.35  indexing.NumericSeriesIndexing.time_getitem_lists(<class 'pandas.core.indexes.numeric.Int64Index'>, 'nonunique_monotonic_inc')
-  270.43ms    93.70ms      0.35  indexing.NumericSeriesIndexing.time_getitem_array(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'nonunique_monotonic_inc')

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.

```
could add/change some more benchmarks and make them match cython and/or missing and/or _na_
> could add/change some more benchmarks and make them match cython and/or missing and/or na

Even if we did that, they would get drowned out by noise in a full run like this (which would take even longer...).  I've been kicking around an idea to automatically identify which benchmarks are relevant for a given PR (based on what files/functions it touches), but it won't be happening any time soon.

thanks !