Skip to content

PERF: multi-column sort_values speedup #17141

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

Closed
wants to merge 11 commits into from

Conversation

mficek
Copy link

@mficek mficek commented Aug 1, 2017

Speedup achieved for sorting by multiple columns: lexsort over multiple columns
replaced with mergesort of columns in reverse order than specified in "by"
argument of DataFrame.sort_values()

mficek added 2 commits August 1, 2017 10:08
Speedup achieved for sorting by multiple columns: lexsort over multiple columns
replaced with mergesorting columns in reverse order than specified in "by"
argument of "sort_values".
@codecov
Copy link

codecov bot commented Aug 1, 2017

Codecov Report

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

Impacted file tree graph

@@            Coverage Diff             @@
##           master   #17141      +/-   ##
==========================================
- Coverage   91.02%   91.01%   -0.02%     
==========================================
  Files         162      163       +1     
  Lines       49539    49552      +13     
==========================================
+ Hits        45095    45101       +6     
- Misses       4444     4451       +7
Flag Coverage Δ
#multiple 88.79% <100%> (ø) ⬆️
#single 40.25% <0%> (-0.07%) ⬇️
Impacted Files Coverage Δ
pandas/core/frame.py 97.71% <100%> (-0.11%) ⬇️
pandas/io/gbq.py 25% <0%> (-58.34%) ⬇️
pandas/core/indexes/range.py 92.18% <0%> (-0.63%) ⬇️
pandas/compat/numpy/__init__.py 93.93% <0%> (-0.18%) ⬇️
pandas/tseries/frequencies.py 96.51% <0%> (-0.16%) ⬇️
pandas/core/missing.py 84.3% <0%> (-0.07%) ⬇️
pandas/core/indexes/base.py 95.88% <0%> (-0.06%) ⬇️
pandas/core/base.py 95.96% <0%> (-0.06%) ⬇️
pandas/core/series.py 94.95% <0%> (-0.05%) ⬇️
... and 25 more

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 6fe6832...41a7a99. 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.

pls add asv's for several columns (2 and pick one with 5 say), use different dtypes for the columns (don't all have to be different, but use datatime, int, string).

@@ -247,7 +247,7 @@ Performance Improvements
~~~~~~~~~~~~~~~~~~~~~~~~

- Improved performance of instantiating :class:`SparseDataFrame` (:issue:`16773`)

- Improved performance of :function:`sort_values` function of :class:`DataFrame` when sorting by multiple columns (:issue:`16995`)
Copy link
Contributor

Choose a reason for hiding this comment

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

:func:`DataFrame.sort_values`

@@ -3418,48 +3417,48 @@ def sort_values(self, by, axis=0, ascending=True, inplace=False,
if is_sequence(ascending) and len(by) != len(ascending):
raise ValueError('Length of ascending (%d) != length of by (%d)' %
(len(ascending), len(by)))
if not isinstance(ascending, (tuple, list)):
Copy link
Contributor

Choose a reason for hiding this comment

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

use is_list_like

indexer = _ensure_platform_int(indexer)
else:
from pandas.core.sorting import nargsort
for i, by_step in enumerate(by[::-1]):
Copy link
Contributor

Choose a reason for hiding this comment

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

do

new_data = self._data

prior to the start of the loop (then just use new_data it always exists), then you don't need the if/else conditions

Copy link
Author

Choose a reason for hiding this comment

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

This one I had to change to new_data = self because later I use an xs indexer. There might be nicer way of writing the code (without xs) but I need to dive more into internals of Pandas, this is my first attempt to help with development.

@jreback jreback added Performance Memory or execution speed performance Reshaping Concat, Merge/Join, Stack/Unstack, Explode labels Aug 1, 2017
@jreback jreback changed the title Sort values speedup PERF: multi-column sort_values speedup Aug 1, 2017
mficek added 2 commits August 2, 2017 15:39
- fixed doc syntax
- added asv tests
- changed initialization of `new_data` variable. Suggested change
to `self._data` was not suitable, because later we use `new_data.xs`
so `new_data` should be NDFrame instance.
@mficek
Copy link
Author

mficek commented Aug 3, 2017

Thanks @jreback for feedback and hints.
I added some asv benchmarks and realized, that proposed sorting works well for all types except string, which is weird. I have to profile the code, find the speed issue and decide what is the problem. It happens only if a str column is sorted, i.e. I guess something with copying of values...

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.

pls show the resulting comparisons vs master


def setup(self):
N = 1000000

Copy link
Contributor

Choose a reason for hiding this comment

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

doesn't need to be so big 100000 is ok

# self.df.iloc[10:20] = np.nan

def time_frame_sort_values_by_two_columns(self):
self.df.sort_values(by=['D', 'E'])
Copy link
Contributor

Choose a reason for hiding this comment

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

add a few more that only have those dtypes
e.g. only string only int only dt and use categorical string as well

@jreback
Copy link
Contributor

jreback commented Aug 15, 2017

can you rebase / update

@pep8speaks
Copy link

pep8speaks commented Aug 16, 2017

Hello @mficek! Thanks for updating the PR.

Line 351:9: E122 continuation line missing indentation or outdented
Line 538:80: E501 line too long (103 > 79 characters)
Line 554:13: E124 closing bracket does not match visual indentation
Line 559:80: E501 line too long (110 > 79 characters)
Line 560:80: E501 line too long (115 > 79 characters)
Line 561:80: E501 line too long (120 > 79 characters)
Line 562:80: E501 line too long (117 > 79 characters)
Line 563:80: E501 line too long (127 > 79 characters)
Line 566:5: E303 too many blank lines (2)

Comment last updated on August 29, 2017 at 14:30 Hours UTC

mficek added 5 commits August 16, 2017 18:02
Speedup achieved for sorting by multiple columns: lexsort over multiple columns
replaced with mergesorting columns in reverse order than specified in "by"
argument of "sort_values".
@mficek
Copy link
Author

mficek commented Aug 16, 2017

Please find below some results from ASV benchmark. As I observed before, when string-typed column is sorted, then my proposed method is slow. I have to find some time and benchmark the sorting code to find out if that is caused by copying of underlaying data or rather missing lexsort, which is in original version. I'm not sure if making some "hybrid" sort based on column data-types would be a good way to continue.

       before           after         ratio
     [f2b0bdc9]       [d3ee46c3]
+     5.14±0.04ms      10.3±0.07ms     2.00  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('repeated_strings|date')
+     5.12±0.06ms      9.87±0.04ms     1.93  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('repeated_strings|timedelta')
+     8.17±0.06ms      12.1±0.05ms     1.48  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('repeated_strings|repeated_category|less_repeated_category|float|timedelta')
+      10.6±0.2ms      15.1±0.08ms     1.43  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('repeated_strings|float|int_sorted|date|timedelta')
+      9.76±0.1ms      12.1±0.09ms     1.24  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('repeated_strings|repeated_category|float|int_sorted|int_random')
+      17.5±0.2ms       21.6±0.1ms     1.23  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('repeated_strings|less_repeated_strings|less_repeated_category|int_random|timedelta')
+      9.35±0.1ms       11.1±0.1ms     1.19  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('repeated_strings|repeated_category|float|date|timedelta')
-      14.4±0.1ms       12.8±0.1ms     0.89  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_strings|date')
-     4.24±0.06ms      2.60±0.04ms     0.61  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_category|int_sorted')
-      4.30±0.1ms      2.53±0.01ms     0.59  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_category|timedelta')
-     6.87±0.07ms      3.56±0.04ms     0.52  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('float|int_random')
-     6.00±0.08ms      2.78±0.03ms     0.46  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('int_random|date')
-     6.28±0.08ms      2.86±0.04ms     0.46  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('float|date')

       before           after         ratio
     [6fe68325]       [bbba95b1]
+      58.0±0.9ms        130±0.5ms     2.24  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_strings|timedelta')
+        58.8±1ms        129±0.2ms     2.20  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_strings|int_sorted')
+      64.9±0.7ms        140±0.9ms     2.16  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_strings|int_random')
+         112±1ms          179±1ms     1.59  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_strings|repeated_category|int_sorted|int_random|date')
+         115±1ms        173±0.5ms     1.51  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_strings|repeated_category|int_random|date|timedelta')
+       122±0.8ms          181±2ms     1.49  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_strings|repeated_category|float|int_random|date')
+       101±0.8ms          148±1ms     1.47  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_strings|repeated_category|less_repeated_category|float|timedelta')
+         136±3ms        188±0.7ms     1.38  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_strings|float|int_sorted|int_random|date')
+         114±1ms          128±1ms     1.12  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_strings|less_repeated_category|int_sorted|int_random|timedelta')
-      21.3±0.3ms      18.8±0.08ms     0.89  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('repeated_category|less_repeated_category')
-       112±0.7ms       69.4±0.2ms     0.62  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_category|float|int_sorted|int_random|timedelta')
-         112±1ms       67.9±0.5ms     0.60  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_category|float|int_sorted|int_random|date')
-      44.8±0.9ms       26.3±0.2ms     0.59  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_category|float')
-         112±1ms       64.4±0.3ms     0.57  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('repeated_category|float|int_sorted|int_random|date')
-      92.0±0.6ms       51.8±0.2ms     0.56  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('repeated_category|less_repeated_category|int_random|date|timedelta')
-      45.0±0.3ms      23.1±0.09ms     0.51  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('repeated_category|float')
-         124±1ms         62.9±2ms     0.51  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('float|int_sorted|int_random|date|timedelta')
-      43.7±0.8ms       22.1±0.2ms     0.50  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('repeated_category|int_random')
-         106±1ms       51.1±0.3ms     0.48  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('less_repeated_category|float|int_sorted|date|timedelta')
-      64.4±0.9ms       30.5±0.2ms     0.47  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('float|int_random')
-        34.3±1ms      12.7±0.04ms     0.37  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('repeated_category|date')
-        34.6±1ms      12.8±0.07ms     0.37  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('repeated_category|int_sorted')
-        57.5±2ms       21.2±0.7ms     0.37  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('float|date')
-        57.4±1ms       19.8±0.6ms     0.34  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('int_random|date')
-        39.0±2ms      10.3±0.08ms     0.26  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('int_sorted|date')

@jreback
Copy link
Contributor

jreback commented Aug 16, 2017

@mficek The cost of factorization (IOW we turn columns into Categoricals) is higher for strings, particularly less dense strings. We need to hash them which is compartively slow (compared to integer factoriation). Though this shouldn't impact too much. Can you show a profile output for sorting say [strings|ints] and [ints|ints] with the same cardinality.?

@mficek
Copy link
Author

mficek commented Aug 29, 2017

So the result of sorting str|int and int|int with same cardinality is as follows:

       before           after         ratio
     [6fe68325]       [bbba95b1]
+        24.4±1ms         86.1±2ms     3.52  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('repeated_strings|int_same_cardinality_as_repeated_strings')
+      18.4±0.4ms           25.4ms     1.38  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('int_same_cardinality_as_repeated_strings|int_same_cardinality_as_repeated_strings_copy')

Not nice. @jreback, any suggestions?

@mficek
Copy link
Author

mficek commented Aug 29, 2017

I profiled the int-int and str-int functions. Bellow is the profiler output. I'll try to figure out why np.argsort takes four times longer for str-int benchmark than for int-int.

int-int
         1697 function calls (1664 primitive calls) in 0.027 seconds

   Ordered by: cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.027    0.027 {built-in method builtins.exec}
        1    0.000    0.000    0.027    0.027 /home/mficek/anaconda2/envs/pandas_dev3/lib/python3.6/site-packages/asv/benchmark.py:401(method_caller)
        1    0.000    0.000    0.027    0.027 /home/mficek/repos/pandas-mficek/asv_bench/benchmarks/frame_methods.py:573(time_frame_sort_values_int_int)
        1    0.000    0.000    0.018    0.018 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:3440(sort_values)
        2    0.002    0.001    0.015    0.007 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/sorting.py:229(nargsort)
        3    0.011    0.004    0.011    0.004 {method 'argsort' of 'numpy.ndarray' objects}
        3    0.000    0.000    0.009    0.003 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:2058(__getitem__)
        1    0.000    0.000    0.009    0.009 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:2101(_getitem_array)
        1    0.000    0.000    0.008    0.008 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:2064(take)
        3    0.000    0.000    0.006    0.002 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4082(take)
        1    0.000    0.000    0.005    0.005 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:3388(_consolidate_inplace)
        1    0.000    0.000    0.005    0.005 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:3378(_protect_consolidate)
        1    0.000    0.000    0.005    0.005 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:3391(f)
        1    0.000    0.000    0.005    0.005 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3652(consolidate)
        7    0.000    0.000    0.005    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3668(_consolidate_inplace)
        1    0.000    0.000    0.005    0.005 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4609(_consolidate)
        6    0.003    0.001    0.005    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4626(_merge_blocks)
        3    0.000    0.000    0.004    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3952(reindex_indexer)
        5    0.000    0.000    0.003    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/algorithms.py:1290(take_nd)
        3    0.000    0.000    0.002    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:1162(take_nd)
        2    0.000    0.000    0.002    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3987(<listcomp>)
        1    0.000    0.000    0.001    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3995(_slice_take_blocks_ax0)
        2    0.001    0.001    0.001    0.001 {pandas._libs.algos.take_2d_axis1_float64_float64}
        3    0.000    0.000    0.001    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1787(take)
        1    0.000    0.000    0.001    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexing.py:1987(maybe_convert_indices)
        9    0.000    0.000    0.001    0.000 {method 'any' of 'numpy.ndarray' objects}
        9    0.000    0.000    0.001    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/_methods.py:37(_any)
        9    0.001    0.000    0.001    0.000 {method 'reduce' of 'numpy.ufunc' objects}
        4    0.001    0.000    0.001    0.000 {built-in method numpy.core.multiarray.concatenate}
        6    0.000    0.000    0.001    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2785(make_block)
        1    0.000    0.000    0.001    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4679(_vstack)
        1    0.000    0.000    0.001    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/shape_base.py:182(vstack)
        6    0.000    0.000    0.001    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:105(__init__)
        4    0.000    0.000    0.001    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2881(__init__)
        3    0.001    0.000    0.001    0.000 {method 'take' of 'numpy.ndarray' objects}
       23    0.001    0.000    0.001    0.000 {built-in method numpy.core.multiarray.arange}
        5    0.000    0.000    0.001    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2978(_rebuild_blknos_and_blklocs)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:2093(xs)
        1    0.000    0.000    0.000    0.000 {pandas._libs.algos.take_2d_axis0_float64_float64}
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/missing.py:26(isna)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/missing.py:51(_isna_new)
        6    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:224(mgr_locs)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexing.py:1139(_convert_to_indexer)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:2084(_getitem_column)
      231    0.000    0.000    0.000    0.000 {built-in method builtins.isinstance}
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:1791(_get_item_cache)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/missing.py:123(_isna_ndarraylike)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/numeric.py:660(require)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/cast.py:252(maybe_promote)
  182/149    0.000    0.000    0.000    0.000 {built-in method builtins.len}
       18    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2922(shape)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3675(get)
        9    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:565(values)
       21    0.000    0.000    0.000    0.000 {built-in method numpy.core.multiarray.array}
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:2581(get_indexer)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4758(_get_blkno_placements)
       13    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:223(is_datetimetz)
       54    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2924(<genexpr>)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/range.py:163(_data)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3103(_verify_integrity)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:216(make_block_same_class)
       11    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:4011(_ensure_index)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:2436(_box_item_values)
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:410(_shallow_copy)
       15    0.000    0.000    0.000    0.000 {built-in method numpy.core.multiarray.empty}
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:158(__new__)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3396(_consolidate_check)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3704(iget)
       30    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/generic.py:7(_check)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:191(is_categorical)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:2443(_box_col_values)
       46    0.000    0.000    0.000    0.000 {built-in method builtins.getattr}
       10    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/numeric.py:534(asanyarray)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/series.py:269(from_array)
       36    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/dtypes.py:84(is_dtype)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:373(_simple_new)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3397(<listcomp>)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/numeric.py:729(<genexpr>)
        9    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:3333(__setattr__)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:3300(__finalize__)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/range.py:254(_shallow_copy)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:305(__init__)
        2    0.000    0.000    0.000    0.000 {pandas._libs.algos.take_1d_int64_int64}
       16    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:334(is_datetime64tz_dtype)
       10    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/numeric.py:463(asarray)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/series.py:151(__init__)
       23    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:309(ftype)
        6    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:442(is_interval_dtype)
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/fromnumeric.py:55(_wrapfunc)
       13    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:478(is_categorical_dtype)
        6    0.000    0.000    0.000    0.000 {built-in method pandas._libs.lib.isscalar}
       52    0.000    0.000    0.000    0.000 {built-in method builtins.hasattr}
        8    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3388(is_consolidated)
        6    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/dtypes.py:489(is_dtype)
       20    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4615(<lambda>)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1980(equals)
        6    0.000    0.000    0.000    0.000 {built-in method pandas._libs.algos.ensure_int64}
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:1337(needs_i8_conversion)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/common.py:184(is_bool_indexer)
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:716(_get_attributes_dict)
        2    0.000    0.000    0.000    0.000 {pandas._libs.lib.infer_dtype}
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/shape_base.py:237(<listcomp>)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:2452(get_loc)
       11    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/range.py:507(__len__)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/fromnumeric.py:1487(nonzero)
       10    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:1737(_get_dtype_type)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/shape_base.py:63(atleast_2d)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1285(is_integer)
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1653(__contains__)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/common.py:355(_asarray_tuplesafe)
        6    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:369(_get_axis)
       20    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:120(_consolidate_key)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1581(inferred_type)
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:373(_get_block_manager_axis)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/fromnumeric.py:826(argsort)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/algorithms.py:1257(_get_take_nd_function)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/range.py:167(_int64index)
        6    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4653(_extend_blocks)
        6    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:343(_get_axis_number)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1434(_convert_listlike_indexer)
        5    0.000    0.000    0.000    0.000 {method 'get_loc' of 'pandas._libs.index.IndexEngine' objects}
       31    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:534(__len__)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:1887(_clear_item_cache)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1468(_convert_arr_indexer)
        1    0.000    0.000    0.000    0.000 {built-in method builtins.sorted}
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/numeric.py:35(__new__)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:657(is_dtype_equal)
        7    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:118(__init__)
        4    0.000    0.000    0.000    0.000 {built-in method builtins.sum}
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexing.py:232(_convert_scalar_indexer)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2882(<listcomp>)
        1    0.000    0.000    0.000    0.000 {method 'get_indexer' of 'pandas._libs.index.IndexEngine' objects}
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:85(is_object_dtype)
       47    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:187(mgr_locs)
       46    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:305(dtype)
        1    0.000    0.000    0.000    0.000 {method 'clear' of 'dict' objects}
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:1102(is_datetime_or_timedelta_dtype)
        2    0.000    0.000    0.000    0.000 {method 'nonzero' of 'numpy.ndarray' objects}
        6    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:356(_get_axis_name)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:409(is_period_dtype)
       10    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:1686(_get_dtype)
       10    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:5379(_preprocess_slice_or_indexer)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:1758(_indexer)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1805(_assert_take_fillable)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/compat/__init__.py:178(iteritems)
       18    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2926(ndim)
       17    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3105(<genexpr>)
       30    0.000    0.000    0.000    0.000 {built-in method builtins.issubclass}
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/dtypes.py:367(is_dtype)
       19    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:1805(_set_as_cached)
        1    0.000    0.000    0.000    0.000 {pandas._libs.lib.get_blkno_indexers}
        9    0.000    0.000    0.000    0.000 {method 'view' of 'numpy.ndarray' objects}
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:160(_init_mgr)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4170(__init__)
       11    0.000    0.000    0.000    0.000 {built-in method builtins.max}
        6    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:989(_handle_fromlist)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/series.py:332(name)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/series.py:296(_set_axis)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1318(_convert_scalar_indexer)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/inference.py:233(is_list_like)
        3    0.000    0.000    0.000    0.000 {pandas._libs.lib.values_from_object}
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4640(<listcomp>)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:511(is_string_dtype)
        2    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:718(<listcomp>)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/series.py:363(values)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:1917(_set_is_copy)
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/base.py:865(_values)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/missing.py:255(array_equivalent)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:975(is_datetime64_any_dtype)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/series.py:336(name)
       11    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:297(shape)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:570(get_values)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:1511(is_bool_dtype)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4310(external_values)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexing.py:93(__init__)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexing.py:2037(is_list_like_indexer)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:1632(shape)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:528(_reset_identity)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1552(_engine)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1687(__getitem__)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/inference.py:396(is_sequence)
        5    0.000    0.000    0.000    0.000 {built-in method pandas._libs.lib.is_float}
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:183(fill_value)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:3317(__getattr__)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1555(<lambda>)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/dtypes.py:32(__str__)
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/common.py:444(_apply_if_callable)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:297(is_datetime64_dtype)
        8    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2999(_get_items)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:2738(_maybe_promote)
       10    0.000    0.000    0.000    0.000 {method 'items' of 'dict' objects}
        1    0.000    0.000    0.000    0.000 {built-in method builtins.setattr}
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2966(_is_single_block)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:437(ndim)
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:555(dtype)
        5    0.000    0.000    0.000    0.000 {built-in method pandas._libs.algos.ensure_platform_int}
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:372(is_timedelta64_dtype)
        6    0.000    0.000    0.000    0.000 {built-in method builtins.iter}
        1    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:402(parent)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexing.py:1897(convert_to_index_sliceable)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:330(iget)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:294(_constructor)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/missing.py:579(clean_reindex_fill_method)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/dtypes.py:29(__unicode__)
       10    0.000    0.000    0.000    0.000 {built-in method pandas._libs.lib.is_integer}
       12    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
        3    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
        5    0.000    0.000    0.000    0.000 {built-in method __new__ of type object at 0x7f8a71299e80}
        5    0.000    0.000    0.000    0.000 {built-in method builtins.hash}
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/series.py:322(_set_subtyp)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/numeric.py:90(is_all_dates)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:508(is_)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/categorical.py:1588(__len__)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/util/_validators.py:220(validate_bool_kwarg)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:790(is_signed_integer_dtype)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:839(is_unsigned_integer_dtype)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/inference.py:364(is_hashable)
        2    0.000    0.000    0.000    0.000 {built-in method pandas._libs.lib.checknull}
        3    0.000    0.000    0.000    0.000 {built-in method pandas._libs.lib.is_bool}
        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
        1    0.000    0.000    0.000    0.000 {method 'upper' of 'str' objects}
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4216(_block)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4641(<listcomp>)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:153(external_values)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexing.py:2023(is_nested_tuple)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1273(is_unique)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/compat/numpy/function.py:38(__call__)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/missing.py:73(clean_fill_method)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:1459(is_float_dtype)
        1    0.000    0.000    0.000    0.000 {method 'setdefault' of 'dict' objects}
        1    0.000    0.000    0.000    0.000 {method 'rpartition' of 'str' objects}
        1    0.000    0.000    0.000    0.000 {built-in method builtins.min}
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1504(_convert_list_indexer)
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
        3    0.000    0.000    0.000    0.000 {built-in method builtins.callable}
str-int
         1933 function calls (1900 primitive calls) in 0.065 seconds

   Ordered by: cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.065    0.065 {built-in method builtins.exec}
        1    0.000    0.000    0.065    0.065 /home/mficek/anaconda2/envs/pandas_dev3/lib/python3.6/site-packages/asv/benchmark.py:401(method_caller)
        1    0.001    0.001    0.065    0.065 /home/mficek/repos/pandas-mficek/asv_bench/benchmarks/frame_methods.py:569(time_frame_sort_values_str_int)
        1    0.000    0.000    0.061    0.061 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:3440(sort_values)
        2    0.002    0.001    0.055    0.028 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/sorting.py:229(nargsort)
        3    0.048    0.016    0.048    0.016 {method 'argsort' of 'numpy.ndarray' objects}
        3    0.000    0.000    0.006    0.002 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4082(take)
        3    0.000    0.000    0.005    0.002 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3952(reindex_indexer)
        4    0.000    0.000    0.005    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/missing.py:26(isna)
        4    0.000    0.000    0.005    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/missing.py:51(_isna_new)
        2    0.000    0.000    0.005    0.002 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/missing.py:123(_isna_ndarraylike)
        1    0.005    0.005    0.005    0.005 {pandas._libs.lib.isnaobj}
        6    0.000    0.000    0.004    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:1162(take_nd)
        8    0.000    0.000    0.004    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/algorithms.py:1290(take_nd)
        3    0.000    0.000    0.004    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:2058(__getitem__)
        2    0.000    0.000    0.004    0.002 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3987(<listcomp>)
        1    0.000    0.000    0.003    0.003 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:2101(_getitem_array)
        1    0.000    0.000    0.003    0.003 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:2064(take)
        3    0.002    0.001    0.002    0.001 {pandas._libs.algos.take_2d_axis0_object_object}
        1    0.000    0.000    0.002    0.002 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:3388(_consolidate_inplace)
        1    0.000    0.000    0.002    0.002 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:3378(_protect_consolidate)
        1    0.000    0.000    0.002    0.002 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:3391(f)
        1    0.000    0.000    0.002    0.002 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3652(consolidate)
        7    0.000    0.000    0.001    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3668(_consolidate_inplace)
        1    0.000    0.000    0.001    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4609(_consolidate)
        6    0.001    0.000    0.001    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4626(_merge_blocks)
        3    0.001    0.000    0.001    0.000 {pandas._libs.algos.take_2d_axis0_float64_float64}
        1    0.000    0.000    0.001    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3995(_slice_take_blocks_ax0)
        3    0.000    0.000    0.001    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1787(take)
        4    0.001    0.000    0.001    0.000 {built-in method numpy.core.multiarray.concatenate}
        4    0.000    0.000    0.001    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2881(__init__)
        1    0.000    0.000    0.001    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4679(_vstack)
        1    0.000    0.000    0.001    0.001 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/shape_base.py:182(vstack)
       26    0.000    0.000    0.000    0.000 {built-in method numpy.core.multiarray.arange}
        3    0.000    0.000    0.000    0.000 {method 'take' of 'numpy.ndarray' objects}
       19    0.000    0.000    0.000    0.000 {built-in method numpy.core.multiarray.empty}
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2978(_rebuild_blknos_and_blklocs)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexing.py:1139(_convert_to_indexer)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:2093(xs)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:2084(_getitem_column)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:1791(_get_item_cache)
      266    0.000    0.000    0.000    0.000 {built-in method builtins.isinstance}
        9    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:565(values)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:2581(get_indexer)
        6    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/cast.py:252(maybe_promote)
       18    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2922(shape)
        9    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2785(make_block)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/range.py:163(_data)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:2436(_box_item_values)
  200/167    0.000    0.000    0.000    0.000 {built-in method builtins.len}
       11    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:4011(_ensure_index)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3103(_verify_integrity)
        8    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:216(make_block_same_class)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:2443(_box_col_values)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:158(__new__)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/series.py:269(from_array)
       54    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2924(<genexpr>)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3675(get)
        8    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:191(is_categorical)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3396(_consolidate_check)
        9    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:105(__init__)
       20    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:223(is_datetimetz)
       19    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:478(is_categorical_dtype)
       21    0.000    0.000    0.000    0.000 {built-in method numpy.core.multiarray.array}
       40    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/generic.py:7(_check)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:373(_simple_new)
        9    0.000    0.000    0.000    0.000 {method 'any' of 'numpy.ndarray' objects}
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3397(<listcomp>)
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:410(_shallow_copy)
        9    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/_methods.py:37(_any)
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/fromnumeric.py:55(_wrapfunc)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/series.py:151(__init__)
       52    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/dtypes.py:84(is_dtype)
       26    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:309(ftype)
        9    0.000    0.000    0.000    0.000 {method 'reduce' of 'numpy.ufunc' objects}
       56    0.000    0.000    0.000    0.000 {built-in method builtins.getattr}
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:305(__init__)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3704(iget)
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:373(_get_block_manager_axis)
        9    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:3333(__setattr__)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:2452(get_loc)
        6    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:343(_get_axis_number)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:1966(__init__)
       10    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/numeric.py:463(asarray)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/range.py:254(_shallow_copy)
        9    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:224(mgr_locs)
       10    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:442(is_interval_dtype)
       10    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/numeric.py:534(asanyarray)
        5    0.000    0.000    0.000    0.000 {method 'get_loc' of 'pandas._libs.index.IndexEngine' objects}
        8    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3388(is_consolidated)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/fromnumeric.py:1487(nonzero)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1980(equals)
       22    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:334(is_datetime64tz_dtype)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/common.py:184(is_bool_indexer)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/common.py:355(_asarray_tuplesafe)
       10    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/dtypes.py:489(is_dtype)
        2    0.000    0.000    0.000    0.000 {pandas._libs.lib.infer_dtype}
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1653(__contains__)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1285(is_integer)
       20    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4615(<lambda>)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/fromnumeric.py:826(argsort)
        6    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:369(_get_axis)
        8    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/algorithms.py:1257(_get_take_nd_function)
       31    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:534(__len__)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1434(_convert_listlike_indexer)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1581(inferred_type)
        7    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:657(is_dtype_equal)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexing.py:1987(maybe_convert_indices)
       68    0.000    0.000    0.000    0.000 {built-in method builtins.hasattr}
       11    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/range.py:507(__len__)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/numeric.py:660(require)
        4    0.000    0.000    0.000    0.000 {built-in method builtins.sum}
        9    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:1737(_get_dtype_type)
       10    0.000    0.000    0.000    0.000 {built-in method pandas._libs.lib.is_integer}
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:716(_get_attributes_dict)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1468(_convert_arr_indexer)
       20    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:120(_consolidate_key)
        1    0.000    0.000    0.000    0.000 {built-in method builtins.sorted}
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/range.py:167(_int64index)
        1    0.000    0.000    0.000    0.000 {method 'get_indexer' of 'pandas._libs.index.IndexEngine' objects}
        7    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:118(__init__)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2882(<listcomp>)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexing.py:232(_convert_scalar_indexer)
       20    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:3105(<genexpr>)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/numeric.py:35(__new__)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:85(is_object_dtype)
        2    0.000    0.000    0.000    0.000 {method 'nonzero' of 'numpy.ndarray' objects}
       52    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:305(dtype)
        6    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:356(_get_axis_name)
       10    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/series.py:296(_set_axis)
        6    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4653(_extend_blocks)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:1887(_clear_item_cache)
        2    0.000    0.000    0.000    0.000 {pandas._libs.algos.take_1d_int64_int64}
       17    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:1686(_get_dtype)
       22    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4758(_get_blkno_placements)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:1758(_indexer)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:1337(needs_i8_conversion)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/shape_base.py:237(<listcomp>)
       58    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:187(mgr_locs)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:511(is_string_dtype)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/compat/__init__.py:178(iteritems)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4640(<listcomp>)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:409(is_period_dtype)
       41    0.000    0.000    0.000    0.000 {built-in method builtins.issubclass}
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/series.py:332(name)
       21    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2926(ndim)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:160(_init_mgr)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/shape_base.py:63(atleast_2d)
        6    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:989(_handle_fromlist)
        1    0.000    0.000    0.000    0.000 {method 'clear' of 'dict' objects}
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:1805(_set_as_cached)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1318(_convert_scalar_indexer)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/dtypes.py:367(is_dtype)
        6    0.000    0.000    0.000    0.000 {built-in method pandas._libs.lib.isscalar}
        3    0.000    0.000    0.000    0.000 {pandas._libs.lib.values_from_object}
        9    0.000    0.000    0.000    0.000 {method 'view' of 'numpy.ndarray' objects}
       11    0.000    0.000    0.000    0.000 {built-in method builtins.max}
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4170(__init__)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/series.py:363(values)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:1632(shape)
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/base.py:865(_values)
        9    0.000    0.000    0.000    0.000 {built-in method pandas._libs.algos.ensure_int64}
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/series.py:336(name)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:975(is_datetime64_any_dtype)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/series.py:322(_set_subtyp)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4310(external_values)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:5379(_preprocess_slice_or_indexer)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexing.py:93(__init__)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:1917(_set_is_copy)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:3300(__finalize__)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:3317(__getattr__)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:570(get_values)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:2738(_maybe_promote)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/dtypes.py:32(__str__)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:1511(is_bool_dtype)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/numpy/core/numeric.py:729(<genexpr>)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexing.py:2037(is_list_like_indexer)
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:718(<listcomp>)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1552(_engine)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1805(_assert_take_fillable)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/missing.py:255(array_equivalent)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/inference.py:233(is_list_like)
        6    0.000    0.000    0.000    0.000 {built-in method builtins.iter}
        6    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:183(fill_value)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1687(__getitem__)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/frame.py:294(_constructor)
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/common.py:444(_apply_if_callable)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:297(is_datetime64_dtype)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:1102(is_datetime_or_timedelta_dtype)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/inference.py:396(is_sequence)
        8    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2999(_get_items)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/generic.py:437(ndim)
        5    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:528(_reset_identity)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1555(<lambda>)
        5    0.000    0.000    0.000    0.000 {built-in method pandas._libs.algos.ensure_platform_int}
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:372(is_timedelta64_dtype)
        7    0.000    0.000    0.000    0.000 {built-in method pandas._libs.lib.is_float}
        5    0.000    0.000    0.000    0.000 {built-in method __new__ of type object at 0x7efd5c73be80}
        1    0.000    0.000    0.000    0.000 {built-in method builtins.setattr}
        1    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:402(parent)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexing.py:1897(convert_to_index_sliceable)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:330(iget)
        3    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:555(dtype)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/missing.py:579(clean_reindex_fill_method)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/categorical.py:1588(__len__)
        4    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/dtypes.py:29(__unicode__)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/inference.py:364(is_hashable)
        1    0.000    0.000    0.000    0.000 {pandas._libs.lib.get_blkno_indexers}
        2    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
        1    0.000    0.000    0.000    0.000 {method 'reshape' of 'numpy.ndarray' objects}
        3    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:2966(_is_single_block)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:153(external_values)
       14    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:297(shape)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:508(is_)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/util/_validators.py:220(validate_bool_kwarg)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:790(is_signed_integer_dtype)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:839(is_unsigned_integer_dtype)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:1422(is_string_like_dtype)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/dtypes/common.py:1459(is_float_dtype)
        2    0.000    0.000    0.000    0.000 {built-in method pandas._libs.lib.checknull}
       10    0.000    0.000    0.000    0.000 {method 'items' of 'dict' objects}
        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
        1    0.000    0.000    0.000    0.000 {method 'rpartition' of 'str' objects}
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4216(_block)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexing.py:2023(is_nested_tuple)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1273(is_unique)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/base.py:1504(_convert_list_indexer)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/compat/numpy/function.py:38(__call__)
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/missing.py:73(clean_fill_method)
        1    0.000    0.000    0.000    0.000 {method 'ravel' of 'numpy.ndarray' objects}
       13    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
        1    0.000    0.000    0.000    0.000 {method 'setdefault' of 'dict' objects}
        1    0.000    0.000    0.000    0.000 {method 'upper' of 'str' objects}
        5    0.000    0.000    0.000    0.000 {built-in method builtins.hash}
        1    0.000    0.000    0.000    0.000 {built-in method builtins.min}
        1    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/internals.py:4641(<listcomp>)
        2    0.000    0.000    0.000    0.000 /home/mficek/repos/pandas-mficek/asv_bench/env/83b3be1235aa7b08e8a17448e2f70790/lib/python3.6/site-packages/pandas/core/indexes/numeric.py:90(is_all_dates)
        3    0.000    0.000    0.000    0.000 {built-in method pandas._libs.lib.is_bool}
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
        3    0.000    0.000    0.000    0.000 {built-in method builtins.callable}


@jreback
Copy link
Contributor

jreback commented Aug 29, 2017

@mficek hmm that looks odd

np.argsort takes four times longer for str-int benchmark than for int-int.

In [1]: arr = np.random.randint(0, 10000, size=1000000)

In [2]: %time arr.argsort()
CPU times: user 89.3 ms, sys: 2.1 ms, total: 91.4 ms
Wall time: 91.1 ms
Out[2]: array([874817, 319423,  52275, ...,  28951, 681090,  72309])

In [3]: arr_s = arr.astype(str)

In [5]: %time arr_s.argsort()
CPU times: user 299 ms, sys: 3.05 ms, total: 302 ms
Wall time: 303 ms
Out[5]: array([102500, 417763, 981549, ..., 826452,  58056, 345976])

In [6]: arr_s = arr.astype(object)

In [7]: %time arr_s.argsort()
CPU times: user 1.02 s, sys: 3.54 ms, total: 1.03 s
Wall time: 1.03 s
Out[7]: array([874817, 319423,  52275, ...,  28951, 681090,  72309])

@mficek
Copy link
Author

mficek commented Sep 9, 2017

@jreback I spotted this discussion, observing that np.sort might be faster than np.argsort. Do you think this could be a way?

@jreback
Copy link
Contributor

jreback commented Sep 9, 2017

@mficek did you have a link w.r.t. #17141 (comment) ?

@mficek
Copy link
Author

mficek commented Sep 9, 2017

@jreback
Copy link
Contributor

jreback commented Sep 9, 2017

so i think the speed diff is coming from the partial sortedness that is already present

you could could not do the multi sort of this or for all int columns i suppose

not sure you can actually use np.sort as we always deal with the indexers (we need to eventually do a take)

but it maybe possible to factorize then use np.sort on the factorized values
(as these then are the indexers)

@jreback
Copy link
Contributor

jreback commented Sep 23, 2017

pls rebase and update when you can

@mficek
Copy link
Author

mficek commented Oct 29, 2017

@jreback Hi Jeff, I'm running out of time to finish this issue. What I can propose is a "hacky" solution with sort speedup for numeric (and categorical and dates) values only. I suggest to check for objects with fallback to current sorting logic, and sorting as coded now in this branch for numeric-like values. If you agree, I'll proceed with this. Hm?

@jreback
Copy link
Contributor

jreback commented Oct 29, 2017

@mficek yep that would be totally fine. We can open an issue for the remaining case to investigate later.

@jreback
Copy link
Contributor

jreback commented Nov 10, 2017

can you rebase and update as above

- :attr:`Series.dt` no longer performs frequency inference, yielding a large speedup when accessing the attribute (:issue:`17210`)

Copy link
Contributor

Choose a reason for hiding this comment

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

move to 0.21.1

@jreback
Copy link
Contributor

jreback commented Nov 25, 2017

can you rebase

@jreback
Copy link
Contributor

jreback commented Dec 28, 2017

can you rebase / show asv's

@mficek mficek closed this Jan 13, 2018
@mficek mficek deleted the sort_values_speedup branch January 13, 2018 22:26
@mficek
Copy link
Author

mficek commented Jan 13, 2018

@jreback Hi Jeff, I give up :-D Today I rebased the code and the speedup simply does not work. For random numbers, I get pretty nice speedup (around 0.3-4 of original code), but for repeated numbers it's twice as long :( I don't have any ideas how to proceed further. Moreover, I don't understand why sorting one numeric column takes longer with my code, I'm not aware of any changes in the logic of sorting for one-column sort.

   before           after         ratio
 [04778805]       [5c75832b]
  •       123ms            333ms     2.72  frame_methods.frame_sort_values_by_multiple_columns.time_frame_sort_values_by_multiple_columns('int_same_cardinality_as_repeated_strings|int_same_cardinality_as_repeated_strings_copy')
    
  •     244±4ms         328±30ms     1.34  frame_methods.SortValues.time_frame_sort_values(True)
    
  •   246±0.6ms         294±10ms     1.19  frame_methods.SortValues.time_frame_sort_values(False)
    
  •       3.60s            1.49s     0.41  frame_methods.SortValues.time_frame_sort_values_two_columns(True)
    
  •       4.04s            1.48s     0.37  frame_methods.SortValues.time_frame_sort_values_two_columns(False)
    

@mficek
Copy link
Author

mficek commented Jan 13, 2018

I messed up with the branches, If you want to see the code, I can submit a new PR. Sorry for the hassle.

@jreback
Copy link
Contributor

jreback commented Jan 13, 2018

@mficek sorry about that. could you submit a PR just with the new asvs? (these have been changed around a lot recently). with fixed seeds.

Then we can separately evaluate whether the fix is good or not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Performance Memory or execution speed performance Reshaping Concat, Merge/Join, Stack/Unstack, Explode
Projects
None yet
Development

Successfully merging this pull request may close these issues.

PERF: DateFrame.sort_values(by=[x,y], inplace=True) speed improvement?
3 participants