Skip to content

catch complex nan in util.is_nan, de-dup+optimize libmissing, tests #24628

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jan 5, 2019

Conversation

jbrockmendel
Copy link
Member

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.

@codecov
Copy link

codecov bot commented Jan 4, 2019

Codecov Report

Merging #24628 into master will decrease coverage by 0.01%.
The diff coverage is 100%.

Impacted file tree graph

@@            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%) ⬇️
#single 42.99% <80%> (-0.01%) ⬇️
Impacted Files Coverage Δ
pandas/core/internals/blocks.py 94.21% <100%> (ø) ⬆️
pandas/_libs/tslibs/__init__.py 100% <100%> (ø) ⬆️
pandas/core/dtypes/missing.py 88.06% <0%> (-5.12%) ⬇️
pandas/util/testing.py 88% <0%> (-0.1%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update cb31b2b...e07446c. Read the comment docs.

@codecov
Copy link

codecov bot commented Jan 4, 2019

Codecov Report

Merging #24628 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           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% <ø> (ø) ⬆️
#single 43.01% <ø> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d106e99...caf3ef8. Read the comment docs.

Copy link
Contributor

@jreback jreback left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

definitely needs a perf check

prob need to run the whole suite

]

inf_vals = [
float('inf'),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should np.inf and np.NINF be included too?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good idea, will add

@jbrockmendel
Copy link
Member Author

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.

@jreback
Copy link
Contributor

jreback commented Jan 4, 2019

speed up is ok
just don’t want to have a slowdown :(

@jbrockmendel
Copy link
Member Author

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

@jreback jreback added Missing-data np.nan, pd.NaT, pd.NA, dropna, isnull, interpolate Complex Complex Numbers labels Jan 5, 2019
@jreback jreback added this to the 0.24.0 milestone Jan 5, 2019
@jreback
Copy link
Contributor

jreback commented Jan 5, 2019

can you merge master

@jbrockmendel
Copy link
Member Author

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.

@jreback
Copy link
Contributor

jreback commented Jan 5, 2019

could add/change some more benchmarks and make them match cython and/or missing and/or na

@jbrockmendel
Copy link
Member Author

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.

@jreback jreback merged commit 4b4bf72 into pandas-dev:master Jan 5, 2019
@jreback
Copy link
Contributor

jreback commented Jan 5, 2019

thanks !

@jbrockmendel jbrockmendel deleted the complex branch January 5, 2019 17:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Complex Complex Numbers Missing-data np.nan, pd.NaT, pd.NA, dropna, isnull, interpolate
Projects
None yet
Development

Successfully merging this pull request may close these issues.

DES: Should util.is_nan check for complex('nan')?
3 participants