Skip to content

BUG: errors and segfaults in groupby cython transforms (#16771) #26134

New issue

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

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

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 20, 2019

Conversation

adbull
Copy link
Contributor

@adbull adbull commented Apr 18, 2019

@codecov
Copy link

codecov bot commented Apr 18, 2019

Codecov Report

Merging #26134 into master will decrease coverage by <.01%.
The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master   #26134      +/-   ##
==========================================
- Coverage   91.99%   91.98%   -0.01%     
==========================================
  Files         175      175              
  Lines       52387    52387              
==========================================
- Hits        48191    48187       -4     
- Misses       4196     4200       +4
Flag Coverage Δ
#multiple 90.53% <100%> (ø) ⬆️
#single 40.74% <0%> (-0.14%) ⬇️
Impacted Files Coverage Δ
pandas/core/groupby/ops.py 94.23% <100%> (ø) ⬆️
pandas/io/gbq.py 75% <0%> (-12.5%) ⬇️
pandas/core/frame.py 96.9% <0%> (-0.12%) ⬇️

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 872a23b...914172c. Read the comment docs.

@codecov
Copy link

codecov bot commented Apr 18, 2019

Codecov Report

Merging #26134 into master will decrease coverage by 0.02%.
The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master   #26134      +/-   ##
==========================================
- Coverage      92%   91.98%   -0.03%     
==========================================
  Files         175      175              
  Lines       52371    52383      +12     
==========================================
  Hits        48184    48184              
- Misses       4187     4199      +12
Flag Coverage Δ
#multiple 90.54% <100%> (-0.02%) ⬇️
#single 40.74% <0%> (-0.15%) ⬇️
Impacted Files Coverage Δ
pandas/core/groupby/ops.py 94.23% <100%> (-1.74%) ⬇️
pandas/io/gbq.py 75% <0%> (-12.5%) ⬇️
pandas/core/frame.py 96.9% <0%> (-0.12%) ⬇️

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 c79b7bb...41befd1. Read the comment docs.

Copy link
Member

@WillAyd WillAyd left a comment

Choose a reason for hiding this comment

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

Haven't reviewed in depth but some quick comments. Can you also post ASV results for this to ensure no regression?

@WillAyd
Copy link
Member

WillAyd commented Apr 18, 2019

Hmm so I don't think the behavior here is correct as it kind of defeats the purpose of the observed keyword to groupby. Citing your original example:

In [15]: import pandas as pd
    ...:
    ...: x_vals = [1]
    ...: x_cats = range(2)
    ...: y = [1]
    ...: df = pd.DataFrame(dict(x=pd.Categorical(x_vals, x_cats), y=y))

Using observed=True yields the correct answer:

In [15]: df.groupby('x', observed=True).y.cumsum()
Out[15]:
0    1
Name: y, dtype: int64

Definitely the current random number that gets yielded with that being False is incorrect:

In [16]: df.groupby('x', observed=False).y.cumsum()
Out[16]:
0    4825136601
Name: y, dtype: int64

But at the same time what you have here in this PR I think is forcing observed=True behavior regardless of what the user specifies.

For consistency the expectation should be a DataFrame with all of the categories in the index and probably np.nan where the value is not actually observed. Kind of wonky given this is a transform but I think that's the best approach

@WillAyd
Copy link
Member

WillAyd commented Apr 18, 2019

Alternately it may make more sense to just raise when a user tries to run a transform with a categorical in the grouper with unobserved categories and observed=False.

I can't imagine a scenario where running a transform and getting back a differently indexed result would be useful in the scope of pandas usage and this would certainly be simpler to integrate into the code base

@WillAyd WillAyd added the Categorical Categorical Data Type label Apr 18, 2019
@WillAyd
Copy link
Member

WillAyd commented Apr 18, 2019

@jreback @TomAugspurger if you have thoughts on comment above

@WillAyd WillAyd added the Missing-data np.nan, pd.NaT, pd.NA, dropna, isnull, interpolate label Apr 18, 2019
@adbull
Copy link
Contributor Author

adbull commented Apr 18, 2019

The above comments seem a little confused? As these are transforms, there's no such thing as observed=True or observed=False behaviour; either way, the output index will be the same as the input index.

As observed=False is the default, I think we should continue to support transforms with it set; otherwise you'd have to pass observed=True every time you wanted to call a transform.

@adbull
Copy link
Contributor Author

adbull commented Apr 18, 2019

@jreback Requested changes made.

@WillAyd ASV shows no significant difference.

$ asv continuous -f 1.1 upstream/master HEAD -b ^groupby
· Creating environments
· Discovering benchmarks
·· Uninstalling from conda-py3.6-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt.
·· Building dae86455 <master> for conda-py3.6-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt.......................................................
·· Installing dae86455 <master> into conda-py3.6-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt...
· Running 102 total benchmarks (2 commits * 1 environments * 51 benchmarks)
[  0.00%] · For pandas commit 872a23bc <upstream/master> (round 1/2):
[  0.00%] ·· Building for conda-py3.6-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt........................................................
[  0.00%] ·· Benchmarking conda-py3.6-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt
[  0.49%] ··· Setting up groupby.py:215                                                                                                                                                        ok
[  0.49%] ··· Running (groupby.AggFunctions.time_different_numpy_functions--)....
[  2.45%] ··· Setting up groupby.py:36                                                                                                                                                         ok
[  2.45%] ··· Running (groupby.Apply.time_copy_function_multi_col--).............
[  8.82%] ··· Running (groupby.Float32.time_sum--)..
[  9.80%] ··· Running (groupby.GroupByMethods.time_dtype_as_group--).
[ 10.29%] ··· Running (groupby.GroupManyLabels.time_sum--).....
[ 12.75%] ··· Running (groupby.Nth.time_groupby_nth_all--).....
[ 15.20%] ··· Running (groupby.Size.time_category_size--)............
[ 21.08%] ··· Running (groupby.TransformNaN.time_first--).
[ 21.57%] ··· Setting up groupby.py:172                                                                                                                                                        ok
[ 21.57%] ··· Running (groupby.CountMultiDtype.time_multi_count--).
[ 22.06%] ··· Setting up groupby.py:198                                                                                                                                                        ok
[ 22.06%] ··· Running (groupby.CountMultiInt.time_multi_int_count--)..
[ 23.04%] ··· Setting up groupby.py:71                                                                                                                                                         ok
[ 23.04%] ··· Running (groupby.Groups.time_series_groups--).
[ 23.53%] ··· Setting up groupby.py:260                                                                                                                                                        ok
[ 23.53%] ··· Running (groupby.MultiColumn.time_col_select_lambda_sum--)....
[ 25.00%] · For pandas commit dae86455 <master> (round 1/2):
[ 25.00%] ·· Building for conda-py3.6-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt....
[ 25.00%] ·· Benchmarking conda-py3.6-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt
[ 25.49%] ··· Setting up groupby.py:215                                                                                                                                                        ok
[ 25.49%] ··· Running (groupby.AggFunctions.time_different_numpy_functions--)....
[ 27.45%] ··· Setting up groupby.py:36                                                                                                                                                         ok
[ 27.45%] ··· Running (groupby.Apply.time_copy_function_multi_col--).............
[ 33.82%] ··· Running (groupby.Float32.time_sum--)..
[ 34.80%] ··· Running (groupby.GroupByMethods.time_dtype_as_group--).
[ 35.29%] ··· Running (groupby.GroupManyLabels.time_sum--)....
[ 37.25%] ··· Running (groupby.Nth.time_frame_nth_any--)......
[ 40.20%] ··· Running (groupby.Size.time_category_size--).............
[ 46.57%] ··· Setting up groupby.py:172                                                                                                                                                        ok
[ 46.57%] ··· Running (groupby.CountMultiDtype.time_multi_count--).
[ 47.06%] ··· Setting up groupby.py:198                                                                                                                                                        ok
[ 47.06%] ··· Running (groupby.CountMultiInt.time_multi_int_count--)..
[ 48.04%] ··· Setting up groupby.py:71                                                                                                                                                         ok
[ 48.04%] ··· Running (groupby.Groups.time_series_groups--).
[ 48.53%] ··· Setting up groupby.py:260                                                                                                                                                        ok
[ 48.53%] ··· Running (groupby.MultiColumn.time_col_select_lambda_sum--)....
[ 50.00%] · For pandas commit dae86455 <master> (round 2/2):
[ 50.00%] ·· Benchmarking conda-py3.6-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt
[ 50.49%] ··· Setting up groupby.py:215                                                                                                                                                        ok
[ 50.49%] ··· groupby.AggFunctions.time_different_numpy_functions                                                                                                                        17.0±1ms
[ 50.98%] ··· groupby.AggFunctions.time_different_python_functions_multicol                                                                                                              28.8±3ms
[ 51.47%] ··· groupby.AggFunctions.time_different_python_functions_singlecol                                                                                                              381±5ms
[ 51.96%] ··· groupby.AggFunctions.time_different_str_functions                                                                                                                        16.7±0.3ms
[ 52.45%] ··· Setting up groupby.py:36                                                                                                                                                         ok
[ 52.45%] ··· groupby.Apply.time_copy_function_multi_col                                                                                                                               1.67±0.06s
[ 52.94%] ··· groupby.Apply.time_copy_overhead_single_col                                                                                                                                617±20ms
[ 53.43%] ··· groupby.Apply.time_scalar_function_multi_col                                                                                                                               31.2±1ms
[ 53.92%] ··· groupby.Apply.time_scalar_function_single_col                                                                                                                            8.82±0.1ms
[ 54.41%] ··· groupby.ApplyDictReturn.time_groupby_apply_dict_return                                                                                                                      123±5ms
[ 54.90%] ··· groupby.Categories.time_groupby_extra_cat_nosort                                                                                                                         13.0±0.4ms
[ 55.39%] ··· groupby.Categories.time_groupby_extra_cat_sort                                                                                                                           2.55±0.1ms
[ 55.88%] ··· groupby.Categories.time_groupby_nosort                                                                                                                                   16.7±0.4ms
[ 56.37%] ··· groupby.Categories.time_groupby_ordered_nosort                                                                                                                           15.7±0.2ms
[ 56.86%] ··· groupby.Categories.time_groupby_ordered_sort                                                                                                                            2.67±0.09ms
[ 57.35%] ··· groupby.Categories.time_groupby_sort                                                                                                                                     2.68±0.2ms
[ 57.84%] ··· groupby.DateAttributes.time_len_groupby_object                                                                                                                              388±9ms
[ 58.33%] ··· groupby.Datelike.time_sum                                                                                                                                                        ok
[ 58.33%] ··· =============== =============
                  grouper
              --------------- -------------
                period_range   3.13±0.07ms
                 date_range     3.94±0.2ms
               date_range_tz    4.45±0.2ms
              =============== =============

[ 58.82%] ··· groupby.Float32.time_sum                                                                                                                                                 11.8±0.3ms
[ 59.31%] ··· groupby.GroupByMethods.time_dtype_as_field                                                                                                                                       ok
[ 59.31%] ··· ========== ============== ============= ================
              --                                 application
              ------------------------- ------------------------------
                dtype        method         direct     transformation
              ========== ============== ============= ================
                 int          all          158±3μs        161±8μs
                 int          any          160±2μs        160±6μs
                 int         bfill         452±10μs       449±9μs
                 int         count         239±4μs        240±8μs
                 int        cumcount       391±4μs        392±2μs
                 int         cummax      1.05±0.03ms    1.06±0.02ms
                 int         cummin      1.06±0.03ms    1.08±0.02ms
                 int        cumprod      1.29±0.07ms    1.31±0.04ms
                 int         cumsum      1.02±0.02ms    1.06±0.02ms
                 int        describe      2.13±0.09s      2.12±0s
                 int         ffill         450±2μs        456±5μs
                 int         first         344±6μs        348±2μs
                 int          head         636±3μs        657±8μs
                 int          last         327±7μs        331±3μs
                 int          mad          850±6ms        852±8ms
                 int          max          362±2μs        363±3μs
                 int          min          356±10μs       357±4μs
                 int         median        619±8μs        625±30μs
                 int          mean         578±3μs        582±4μs
                 int        nunique        573±4μs        572±3μs
                 int       pct_change    2.03±0.03ms    2.07±0.02ms
                 int          prod         576±6μs        588±10μs
                 int        quantile       514±2μs        520±30μs
                 int          rank       1.35±0.02ms     1.40±0.1ms
                 int          sem        1.19±0.01ms    1.19±0.02ms
                 int         shift         260±20μs       244±2μs
                 int          size         186±5μs        184±2μs
                 int          skew         246±2ms        248±1ms
                 int          std          568±4μs        564±5μs
                 int          sum          615±8μs        610±4μs
                 int          tail         658±8μs        661±5μs
                 int         unique        239±3ms        238±2ms
                 int      value_counts   1.47±0.02ms    1.46±0.02ms
                 int          var          384±10μs       389±3μs
                float         all          154±4μs        159±2μs
                float         any          157±3μs        159±2μs
                float        bfill         389±5μs        383±2μs
                float        count         235±6μs        232±4μs
                float       cumcount       391±5μs        402±6μs
                float        cummax        985±9μs        971±6μs
                float        cummin        973±20μs       997±40μs
                float       cumprod        966±20μs       977±9μs
                float        cumsum        977±10μs       978±20μs
                float       describe       2.12±0s       2.12±0.03s
                float        ffill         391±10μs       384±3μs
                float        first         284±2μs        274±5μs
                float         head         645±5μs        642±10μs
                float         last         264±2μs        260±20μs
                float         mad          838±2ms        837±2ms
                float         max          280±2μs        290±8μs
                float         min          286±3μs        286±2μs
                float        median        315±5μs        308±1μs
                float         mean         270±2μs        275±4μs
                float       nunique        579±5μs        573±4μs
                float      pct_change    1.93±0.03ms    1.93±0.03ms
                float         prod        269±0.9μs       271±1μs
                float       quantile       520±5μs        509±8μs
                float         rank       1.33±0.01ms    1.33±0.04ms
                float         sem        1.11±0.02ms    1.10±0.01ms
                float        shift         221±3μs        220±3μs
                float         size         183±4μs        186±3μs
                float         skew         242±1ms        240±4ms
                float         std          446±5μs        459±6μs
                float         sum          269±2μs        273±4μs
                float         tail         658±10μs       654±6μs
                float        unique        244±2ms        244±2ms
                float     value_counts   1.69±0.04ms    1.64±0.03ms
                float         var          286±4μs        290±20μs
                object        all          711±3μs        718±20μs
                object        any          714±7μs        712±2μs
                object       bfill         579±2μs        583±30μs
                object       count         329±3μs        329±3μs
                object      cumcount       395±5μs        395±7μs
                object       cummax          n/a            n/a
                object       cummin          n/a            n/a
                object      cumprod          n/a            n/a
                object       cumsum          n/a            n/a
                object      describe         n/a            n/a
                object       ffill         589±20μs       580±4μs
                object       first         520±3μs        521±2μs
                object        head         688±10μs       697±7μs
                object        last         519±8μs        522±6μs
                object        mad            n/a            n/a
                object        max            n/a            n/a
                object        min            n/a            n/a
                object       median          n/a            n/a
                object        mean           n/a            n/a
                object      nunique        903±9μs        906±8μs
                object     pct_change        n/a            n/a
                object        prod           n/a            n/a
                object      quantile         n/a            n/a
                object        rank           n/a            n/a
                object        sem            n/a            n/a
                object       shift         346±4μs        342±3μs
                object        size         182±3μs        185±2μs
                object        skew           n/a            n/a
                object        std            n/a            n/a
                object        sum            n/a            n/a
                object        tail         716±10μs       708±5μs
                object       unique        277±1ms        280±2ms
                object    value_counts   1.37±0.03ms    1.37±0.01ms
                object        var            n/a            n/a
               datetime       all          161±2μs        159±2μs
               datetime       any          163±2μs        163±1μs
               datetime      bfill         390±3μs        391±5μs
               datetime      count         228±2μs        221±3μs
               datetime     cumcount       392±4μs        393±2μs
               datetime      cummax          n/a            n/a
               datetime      cummin        938±3μs        941±10μs
               datetime     cumprod          n/a            n/a
               datetime      cumsum          n/a            n/a
               datetime     describe         n/a            n/a
               datetime      ffill         391±2μs        390±2μs
               datetime      first         228±2μs        228±3μs
               datetime       head         627±7μs        639±6μs
               datetime       last         206±5μs        209±1μs
               datetime       mad            n/a            n/a
               datetime       max          228±4μs        224±3μs
               datetime       min          241±4μs        243±5μs
               datetime      median          n/a            n/a
               datetime       mean           n/a            n/a
               datetime     nunique        454±4μs        458±5μs
               datetime    pct_change        n/a            n/a
               datetime       prod           n/a            n/a
               datetime     quantile       447±4μs        441±7μs
               datetime       rank         1.20±0ms     1.19±0.01ms
               datetime       sem            n/a            n/a
               datetime      shift         228±4μs        226±2μs
               datetime       size         184±3μs        183±1μs
               datetime       skew           n/a            n/a
               datetime       std            n/a            n/a
               datetime       sum            n/a            n/a
               datetime       tail         654±6μs        649±3μs
               datetime      unique        264±2ms        261±1ms
               datetime   value_counts   1.39±0.02ms    1.40±0.02ms
               datetime       var            n/a            n/a
              ========== ============== ============= ================

[ 59.80%] ··· groupby.GroupByMethods.time_dtype_as_group                                                                                                                                       ok
[ 59.80%] ··· ========== ============== ============= ================
              --                                 application
              ------------------------- ------------------------------
                dtype        method         direct     transformation
              ========== ============== ============= ================
                 int          all          158±2μs        161±4μs
                 int          any          162±3μs        163±5μs
                 int         bfill         452±2μs        454±5μs
                 int         count         236±5μs        236±4μs
                 int        cumcount       396±2μs        404±4μs
                 int         cummax      1.05±0.01ms    1.06±0.01ms
                 int         cummin      1.05±0.01ms    1.07±0.01ms
                 int        cumprod      1.33±0.02ms    1.31±0.01ms
                 int         cumsum      1.08±0.03ms    1.07±0.02ms
                 int        describe      3.11±0.01s     3.17±0.02s
                 int         ffill         458±4μs        448±2μs
                 int         first         352±3μs        355±4μs
                 int          head         651±7μs        644±9μs
                 int          last         338±4μs        344±6μs
                 int          mad         1.25±0.01s     1.25±0.01s
                 int          max          360±4μs        360±3μs
                 int          min          361±6μs        359±1μs
                 int         median        630±6μs        616±7μs
                 int          mean         589±9μs        583±7μs
                 int        nunique        584±7μs        581±4μs
                 int       pct_change    2.10±0.02ms    2.08±0.02ms
                 int          prod         634±10μs       620±8μs
                 int        quantile       523±8μs        527±10μs
                 int          rank       1.37±0.01ms      1.35±0ms
                 int          sem        1.33±0.02ms    1.35±0.03ms
                 int         shift         249±3μs        249±2μs
                 int          size         182±2μs        191±3μs
                 int          skew         365±4ms        368±2ms
                 int          std          703±6μs        700±7μs
                 int          sum          623±3μs        630±7μs
                 int          tail         676±10μs       676±7μs
                 int         unique        353±2ms        354±3ms
                 int      value_counts   1.44±0.02ms    1.44±0.01ms
                 int          var          523±6μs        528±3μs
                float         all          164±3μs        161±3μs
                float         any          165±7μs        163±1μs
                float        bfill         458±20μs       440±3μs
                float        count         241±4μs        246±2μs
                float       cumcount       373±7μs        372±10μs
                float        cummax      1.08±0.02ms    1.08±0.01ms
                float        cummin      1.09±0.01ms    1.07±0.01ms
                float       cumprod      1.34±0.02ms      1.34±0ms
                float        cumsum      1.08±0.01ms    1.08±0.01ms
                float       describe      4.86±0.01s     4.87±0.08s
                float        ffill        472±100μs       455±20μs
                float        first         354±5μs        350±3μs
                float         head         631±7μs        697±40μs
                float         last         349±6μs        345±6μs
                float         mad         1.92±0.09s     1.94±0.1s
                float         max          379±20μs       369±20μs
                float         min          408±60μs       367±7μs
                float        median       793±100μs       670±30μs
                float         mean         654±4μs       729±100μs
                float       nunique       700±100μs      708±100μs
                float      pct_change     2.23±0.2ms     2.29±0.3ms
                float         prod         657±30μs       656±3μs
                float       quantile       540±10μs       547±8μs
                float         rank       1.38±0.01ms    1.38±0.01ms
                float         sem        1.26±0.04ms    1.22±0.02ms
                float        shift         239±4μs        235±3μs
                float         size         197±8μs        189±3μs
                float         skew         605±60ms       621±70ms
                float         std          579±20μs       589±8μs
                float         sum          641±4μs        647±8μs
                float         tail         636±5μs        655±20μs
                float        unique        556±6ms        552±5ms
                float     value_counts   1.46±0.04ms    1.46±0.02ms
                float         var          407±4μs        401±5μs
                object        all          155±3μs        156±2μs
                object        any          158±5μs        160±3μs
                object       bfill         315±4μs        312±4μs
                object       count         235±7μs        241±10μs
                object      cumcount       345±4μs        346±8μs
                object       cummax          n/a            n/a
                object       cummin          n/a            n/a
                object      cumprod          n/a            n/a
                object       cumsum          n/a            n/a
                object      describe         n/a            n/a
                object       ffill         312±5μs        309±6μs
                object       first         330±4μs        339±10μs
                object        head         573±4μs        581±6μs
                object        last         323±6μs        324±6μs
                object        mad            n/a            n/a
                object        max            n/a            n/a
                object        min            n/a            n/a
                object       median          n/a            n/a
                object        mean           n/a            n/a
                object      nunique        417±2μs        424±6μs
                object     pct_change        n/a            n/a
                object        prod           n/a            n/a
                object      quantile         n/a            n/a
                object        rank           n/a            n/a
                object        sem            n/a            n/a
                object       shift         236±2μs        230±5μs
                object        size         183±5μs       183±0.6μs
                object        skew           n/a            n/a
                object        std            n/a            n/a
                object        sum            n/a            n/a
                object        tail         598±4μs        613±7μs
                object       unique      2.19±0.03ms    2.18±0.02ms
                object    value_counts   1.24±0.02ms    1.22±0.01ms
                object        var            n/a            n/a
               datetime       all          165±3μs        165±2μs
               datetime       any          162±7μs        166±2μs
               datetime      bfill         315±3μs        314±3μs
               datetime      count         247±6μs        244±3μs
               datetime     cumcount       373±7μs        364±4μs
               datetime      cummax          n/a            n/a
               datetime      cummin      1.08±0.01ms    1.08±0.02ms
               datetime     cumprod          n/a            n/a
               datetime      cumsum          n/a            n/a
               datetime     describe         n/a            n/a
               datetime      ffill         317±9μs        322±6μs
               datetime      first         352±5μs        354±3μs
               datetime       head         620±3μs        629±9μs
               datetime       last         345±3μs        349±3μs
               datetime       mad            n/a            n/a
               datetime       max          357±4μs        376±7μs
               datetime       min          366±10μs       367±4μs
               datetime      median          n/a            n/a
               datetime       mean           n/a            n/a
               datetime     nunique        580±2μs        579±2μs
               datetime    pct_change        n/a            n/a
               datetime       prod           n/a            n/a
               datetime     quantile       533±10μs       529±5μs
               datetime       rank       1.38±0.02ms    1.37±0.02ms
               datetime       sem            n/a            n/a
               datetime      shift         236±3μs        234±4μs
               datetime       size         190±1μs        193±4μs
               datetime       skew           n/a            n/a
               datetime       std            n/a            n/a
               datetime       sum            n/a            n/a
               datetime       tail         649±10μs       639±6μs
               datetime      unique        595±7ms        594±20ms
               datetime   value_counts   1.45±0.02ms      1.45±0ms
               datetime       var            n/a            n/a
              ========== ============== ============= ================

[ 60.29%] ··· groupby.GroupManyLabels.time_sum                                                                                                                                                 ok
[ 60.29%] ··· ======= =============
               ncols
              ------- -------------
                 1     3.18±0.03ms
                1000    6.35±0.2ms
              ======= =============

[ 60.78%] ··· groupby.GroupStrings.time_multi_columns                                                                                                                                     610±5ms
[ 61.27%] ··· groupby.Int64.time_overflow                                                                                                                                                 783±9ms
[ 61.76%] ··· groupby.Nth.time_frame_nth                                                                                                                                                       ok
[ 61.76%] ··· ========== ============
                dtype
              ---------- ------------
               float32    26.1±0.9ms
               float64    26.2±0.9ms
               datetime   25.7±0.2ms
                object    28.9±0.2ms
              ========== ============

[ 62.25%] ··· groupby.Nth.time_frame_nth_any                                                                                                                                                   ok
[ 62.25%] ··· ========== ============
                dtype
              ---------- ------------
               float32    58.4±0.6ms
               float64     55.0±1ms
               datetime   61.8±0.5ms
                object    64.1±0.9ms
              ========== ============

[ 62.75%] ··· groupby.Nth.time_groupby_nth_all                                                                                                                                                 ok
[ 62.75%] ··· ========== ============
                dtype
              ---------- ------------
               float32     50.2±1ms
               float64    49.3±0.9ms
               datetime   53.8±0.8ms
                object     56.9±1ms
              ========== ============

[ 63.24%] ··· groupby.Nth.time_series_nth                                                                                                                                                      ok
[ 63.24%] ··· ========== ============
                dtype
              ---------- ------------
               float32    28.6±0.8ms
               float64    27.8±0.5ms
               datetime   31.8±0.3ms
                object    31.9±0.7ms
              ========== ============

[ 63.73%] ··· groupby.Nth.time_series_nth_all                                                                                                                                                  ok
[ 63.73%] ··· ========== ============
                dtype
              ---------- ------------
               float32     57.7±1ms
               float64    59.1±0.7ms
               datetime   63.8±0.8ms
                object     68.1±1ms
              ========== ============

[ 64.22%] ··· groupby.Nth.time_series_nth_any                                                                                                                                                  ok
[ 64.22%] ··· ========== ============
                dtype
              ---------- ------------
               float32     60.9±1ms
               float64    58.0±0.7ms
               datetime   64.2±0.7ms
                object    68.2±0.4ms
              ========== ============

[ 64.71%] ··· groupby.RankWithTies.time_rank_ties                                                                                                                                              ok
[ 64.71%] ··· ============ ============= ============= ============= ============= =============
              --                                         tie_method
              ------------ ---------------------------------------------------------------------
                 dtype         first        average        dense          min           max
              ============ ============= ============= ============= ============= =============
                float64      2.88±0.1ms   2.89±0.05ms   2.86±0.04ms   2.85±0.04ms   2.98±0.05ms
                float32     2.89±0.07ms   2.91±0.05ms   2.89±0.07ms   2.85±0.05ms   2.85±0.05ms
                 int64      2.89±0.07ms   2.86±0.05ms   2.89±0.07ms   2.85±0.04ms   2.89±0.06ms
               datetime64   2.95±0.06ms   2.90±0.04ms    2.97±0.1ms   2.82±0.05ms   2.85±0.02ms
              ============ ============= ============= ============= ============= =============

[ 65.20%] ··· groupby.Size.time_category_size                                                                                                                                          8.02±0.2ms
[ 65.69%] ··· groupby.Size.time_dt_timegrouper_size                                                                                                                                    45.5±0.5ms
[ 66.18%] ··· groupby.Size.time_multi_size                                                                                                                                             18.9±0.4ms
[ 66.67%] ··· groupby.SumBools.time_groupby_sum_booleans                                                                                                                              2.42±0.04ms
[ 67.16%] ··· groupby.SumMultiLevel.time_groupby_sum_multiindex                                                                                                                       2.22±0.02ms
[ 67.65%] ··· groupby.Transform.time_transform_lambda_max                                                                                                                                797±10ms
[ 68.14%] ··· groupby.Transform.time_transform_multi_key1                                                                                                                              13.2±0.2ms
[ 68.63%] ··· groupby.Transform.time_transform_multi_key2                                                                                                                              11.6±0.1ms
[ 69.12%] ··· groupby.Transform.time_transform_multi_key3                                                                                                                              9.00±0.2ms
[ 69.61%] ··· groupby.Transform.time_transform_multi_key4                                                                                                                              5.01±0.1ms
[ 70.10%] ··· groupby.Transform.time_transform_ufunc_max                                                                                                                               9.14±0.2ms
[ 70.59%] ··· groupby.TransformBools.time_transform_mean                                                                                                                               11.9±0.1ms
[ 71.08%] ··· groupby.TransformNaN.time_first                                                                                                                                         4.12±0.09ms
[ 71.57%] ··· Setting up groupby.py:172                                                                                                                                                        ok
[ 71.57%] ··· groupby.CountMultiDtype.time_multi_count                                                                                                                                6.54±0.03ms
[ 72.06%] ··· Setting up groupby.py:198                                                                                                                                                        ok
[ 72.06%] ··· groupby.CountMultiInt.time_multi_int_count                                                                                                                               4.48±0.1ms
[ 72.55%] ··· groupby.CountMultiInt.time_multi_int_nunique                                                                                                                             12.1±0.2ms
[ 73.04%] ··· Setting up groupby.py:71                                                                                                                                                         ok
[ 73.04%] ··· groupby.Groups.time_series_groups                                                                                                                                                ok
[ 73.04%] ··· ============== ==========
                   key
              -------------- ----------
               int64_small    45.2±2ms
               int64_large    635±3ms
               object_small   89.2±2ms
               object_large   721±8ms
              ============== ==========

[ 73.53%] ··· Setting up groupby.py:260                                                                                                                                                        ok
[ 73.53%] ··· groupby.MultiColumn.time_col_select_lambda_sum                                                                                                                            111±0.9ms
[ 74.02%] ··· groupby.MultiColumn.time_col_select_numpy_sum                                                                                                                            18.5±0.3ms
[ 74.51%] ··· groupby.MultiColumn.time_cython_sum                                                                                                                                      21.2±0.3ms
[ 75.00%] ··· groupby.MultiColumn.time_lambda_sum                                                                                                                                         201±3ms
[ 75.00%] · For pandas commit 872a23bc <upstream/master> (round 2/2):
[ 75.00%] ·· Building for conda-py3.6-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt...
[ 75.00%] ·· Benchmarking conda-py3.6-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt
[ 75.49%] ··· Setting up groupby.py:215                                                                                                                                                        ok
[ 75.49%] ··· groupby.AggFunctions.time_different_numpy_functions                                                                                                                        17.7±2ms
[ 75.98%] ··· groupby.AggFunctions.time_different_python_functions_multicol                                                                                                              32.0±2ms
[ 76.47%] ··· groupby.AggFunctions.time_different_python_functions_singlecol                                                                                                              396±9ms
[ 76.96%] ··· groupby.AggFunctions.time_different_str_functions                                                                                                                        17.6±0.9ms
[ 77.45%] ··· Setting up groupby.py:36                                                                                                                                                         ok
[ 77.45%] ··· groupby.Apply.time_copy_function_multi_col                                                                                                                                1.76±0.1s
[ 77.94%] ··· groupby.Apply.time_copy_overhead_single_col                                                                                                                                608±20ms
[ 78.43%] ··· groupby.Apply.time_scalar_function_multi_col                                                                                                                               31.7±2ms
[ 78.92%] ··· groupby.Apply.time_scalar_function_single_col                                                                                                                            8.97±0.3ms
[ 79.41%] ··· groupby.ApplyDictReturn.time_groupby_apply_dict_return                                                                                                                      125±5ms
[ 79.90%] ··· groupby.Categories.time_groupby_extra_cat_nosort                                                                                                                         13.1±0.7ms
[ 80.39%] ··· groupby.Categories.time_groupby_extra_cat_sort                                                                                                                          2.67±0.07ms
[ 80.88%] ··· groupby.Categories.time_groupby_nosort                                                                                                                                   16.6±0.6ms
[ 81.37%] ··· groupby.Categories.time_groupby_ordered_nosort                                                                                                                           16.1±0.7ms
[ 81.86%] ··· groupby.Categories.time_groupby_ordered_sort                                                                                                                             2.62±0.1ms
[ 82.35%] ··· groupby.Categories.time_groupby_sort                                                                                                                                    2.64±0.04ms
[ 82.84%] ··· groupby.DateAttributes.time_len_groupby_object                                                                                                                             380±20ms
[ 83.33%] ··· groupby.Datelike.time_sum                                                                                                                                                        ok
[ 83.33%] ··· =============== =============
                  grouper
              --------------- -------------
                period_range    3.14±0.2ms
                 date_range    3.90±0.05ms
               date_range_tz    4.32±0.2ms
              =============== =============

[ 83.82%] ··· groupby.Float32.time_sum                                                                                                                                                 11.7±0.3ms
[ 84.31%] ··· groupby.GroupByMethods.time_dtype_as_field                                                                                                                                       ok
[ 84.31%] ··· ========== ============== ============= ================
              --                                 application
              ------------------------- ------------------------------
                dtype        method         direct     transformation
              ========== ============== ============= ================
                 int          all          162±8μs        165±10μs
                 int          any          169±10μs       162±9μs
                 int         bfill         454±6μs        454±30μs
                 int         count         237±4μs        234±6μs
                 int        cumcount       393±5μs        402±9μs
                 int         cummax      1.06±0.01ms    1.06±0.05ms
                 int         cummin      1.04±0.02ms    1.11±0.06ms
                 int        cumprod      1.28±0.02ms     1.32±0.1ms
                 int         cumsum      1.09±0.02ms    1.05±0.06ms
                 int        describe      2.19±0.08s     2.22±0.07s
                 int         ffill         484±30μs       457±20μs
                 int         first         350±20μs       357±10μs
                 int          head         642±10μs       659±20μs
                 int          last         338±7μs        344±9μs
                 int          mad          902±20ms       872±40ms
                 int          max          368±10μs       369±10μs
                 int          min          370±6μs        360±4μs
                 int         median        668±30μs       622±40μs
                 int          mean         594±30μs       572±40μs
                 int        nunique        581±30μs       596±40μs
                 int       pct_change    2.12±0.08ms    2.11±0.09ms
                 int          prod         594±40μs       609±30μs
                 int        quantile       526±10μs       535±30μs
                 int          rank        1.41±0.1ms    1.39±0.05ms
                 int          sem        1.23±0.03ms    1.24±0.06ms
                 int         shift         253±5μs        255±10μs
                 int          size         189±10μs       222±50μs
                 int          skew         271±10ms       248±10ms
                 int          std          581±20μs       569±1μs
                 int          sum          620±10μs       618±5μs
                 int          tail         667±8μs        656±10μs
                 int         unique        239±10ms       245±6ms
                 int      value_counts   1.53±0.07ms     1.55±0.1ms
                 int          var          406±20μs       399±10μs
                float         all          161±10μs       158±9μs
                float         any          160±10μs       170±20μs
                float        bfill         393±20μs       397±5μs
                float        count         246±10μs       231±4μs
                float       cumcount       408±50μs       389±7μs
                float        cummax      1.03±0.03ms      981±9μs
                float        cummin      1.03±0.08ms      995±10μs
                float       cumprod        996±60μs       978±4μs
                float        cumsum        987±50μs       983±20μs
                float       describe      2.24±0.06s     2.22±0.07s
                float        ffill         392±20μs       398±20μs
                float        first         276±10μs       282±20μs
                float         head         654±4μs        645±7μs
                float         last         273±10μs       274±20μs
                float         mad          859±30ms       871±30ms
                float         max          286±2μs        289±8μs
                float         min          291±20μs       293±10μs
                float        median        317±10μs       315±20μs
                float         mean         275±10μs       279±10μs
                float       nunique        592±30μs       581±20μs
                float      pct_change     1.93±0.2ms    1.96±0.05ms
                float         prod         279±9μs        282±8μs
                float       quantile       528±20μs       541±30μs
                float         rank       1.42±0.08ms    1.37±0.03ms
                float         sem        1.13±0.05ms    1.12±0.05ms
                float        shift         226±10μs       226±5μs
                float         size         188±6μs        187±2μs
                float         skew         245±7ms        247±6ms
                float         std          457±7μs        466±10μs
                float         sum          278±4μs        279±9μs
                float         tail         670±9μs        705±50μs
                float        unique        248±8ms        254±9ms
                float     value_counts   1.65±0.08ms    1.70±0.07ms
                float         var          292±20μs       286±7μs
                object        all          720±6μs        731±40μs
                object        any          722±20μs       757±30μs
                object       bfill         585±4μs        594±30μs
                object       count         332±5μs        356±20μs
                object      cumcount       394±1μs        397±8μs
                object       cummax          n/a            n/a
                object       cummin          n/a            n/a
                object      cumprod          n/a            n/a
                object       cumsum          n/a            n/a
                object      describe         n/a            n/a
                object       ffill         592±60μs       614±30μs
                object       first         533±20μs       541±10μs
                object        head         719±7μs        702±20μs
                object        last         536±30μs       525±30μs
                object        mad            n/a            n/a
                object        max            n/a            n/a
                object        min            n/a            n/a
                object       median          n/a            n/a
                object        mean           n/a            n/a
                object      nunique        911±30μs       906±20μs
                object     pct_change        n/a            n/a
                object        prod           n/a            n/a
                object      quantile         n/a            n/a
                object        rank           n/a            n/a
                object        sem            n/a            n/a
                object       shift         354±7μs        345±6μs
                object        size         185±10μs       185±3μs
                object        skew           n/a            n/a
                object        std            n/a            n/a
                object        sum            n/a            n/a
                object        tail         734±10μs       761±40μs
                object       unique        295±4ms        287±8ms
                object    value_counts   1.45±0.08ms    1.45±0.02ms
                object        var            n/a            n/a
               datetime       all          169±7μs        162±3μs
               datetime       any          167±7μs        168±2μs
               datetime      bfill         401±8μs        395±5μs
               datetime      count         233±10μs       226±2μs
               datetime     cumcount       398±6μs        404±4μs
               datetime      cummax          n/a            n/a
               datetime      cummin      1.02±0.05ms      937±60μs
               datetime     cumprod          n/a            n/a
               datetime      cumsum          n/a            n/a
               datetime     describe         n/a            n/a
               datetime      ffill         394±5μs        393±8μs
               datetime      first         229±9μs        226±10μs
               datetime       head         639±6μs        641±10μs
               datetime       last         211±3μs        211±7μs
               datetime       mad            n/a            n/a
               datetime       max          236±6μs        231±5μs
               datetime       min          244±10μs       248±9μs
               datetime      median          n/a            n/a
               datetime       mean           n/a            n/a
               datetime     nunique        463±10μs       455±9μs
               datetime    pct_change        n/a            n/a
               datetime       prod           n/a            n/a
               datetime     quantile       459±20μs       461±20μs
               datetime       rank       1.22±0.05ms    1.20±0.03ms
               datetime       sem            n/a            n/a
               datetime      shift         238±10μs       227±7μs
               datetime       size         200±40μs       185±2μs
               datetime       skew           n/a            n/a
               datetime       std            n/a            n/a
               datetime       sum            n/a            n/a
               datetime       tail         666±7μs        654±10μs
               datetime      unique        267±5ms        271±10ms
               datetime   value_counts   1.41±0.05ms    1.45±0.08ms
               datetime       var            n/a            n/a
              ========== ============== ============= ================

[ 84.80%] ··· groupby.GroupByMethods.time_dtype_as_group                                                                                                                                       ok
[ 84.80%] ··· ========== ============== ============= ================
              --                                 application
              ------------------------- ------------------------------
                dtype        method         direct     transformation
              ========== ============== ============= ================
                 int          all          163±4μs        167±10μs
                 int          any          163±2μs        165±4μs
                 int         bfill         459±4μs        459±10μs
                 int         count         238±5μs        243±8μs
                 int        cumcount       402±6μs        411±10μs
                 int         cummax      1.07±0.02ms    1.08±0.02ms
                 int         cummin      1.06±0.02ms    1.06±0.04ms
                 int        cumprod      1.30±0.02ms    1.36±0.07ms
                 int         cumsum      1.08±0.01ms    1.09±0.06ms
                 int        describe      3.15±0.1s      3.19±0.07s
                 int         ffill         458±7μs        506±40μs
                 int         first         356±6μs        376±20μs
                 int          head         656±10μs       660±9μs
                 int          last         338±2μs        340±6μs
                 int          mad         1.27±0.04s     1.28±0.04s
                 int          max          364±6μs        370±30μs
                 int          min          360±2μs        364±10μs
                 int         median        625±10μs       626±40μs
                 int          mean         593±20μs       595±20μs
                 int        nunique        591±10μs       599±30μs
                 int       pct_change     2.21±0.1ms     2.14±0.1ms
                 int          prod         622±6μs        656±30μs
                 int        quantile       533±10μs       531±20μs
                 int          rank       1.39±0.04ms    1.36±0.02ms
                 int          sem        1.38±0.09ms    1.37±0.06ms
                 int         shift         251±6μs        261±9μs
                 int          size         186±9μs        186±6μs
                 int          skew         369±10ms       369±20ms
                 int          std          698±30μs       727±30μs
                 int          sum          630±20μs       637±40μs
                 int          tail         704±30μs       680±10μs
                 int         unique        362±9ms        357±10ms
                 int      value_counts   1.46±0.07ms    1.44±0.05ms
                 int          var          530±20μs       528±7μs
                float         all          167±5μs        162±1μs
                float         any          170±10μs       162±1μs
                float        bfill         445±10μs       440±7μs
                float        count         258±20μs       251±4μs
                float       cumcount       372±6μs        369±3μs
                float        cummax      1.11±0.02ms    1.08±0.04ms
                float        cummin      1.12±0.06ms    1.14±0.07ms
                float       cumprod      1.39±0.06ms    1.38±0.03ms
                float        cumsum      1.15±0.04ms    1.14±0.07ms
                float       describe      4.91±0.08s     4.84±0.09s
                float        ffill         446±20μs       445±8μs
                float        first         385±10μs       352±4μs
                float         head         649±9μs        633±9μs
                float         last         355±3μs        349±6μs
                float         mad         1.92±0.09s     1.94±0.02s
                float         max          360±2μs        367±3μs
                float         min          362±2μs        362±2μs
                float        median        660±9μs        668±6μs
                float         mean         657±9μs        636±4μs
                float       nunique        578±3μs        576±5μs
                float      pct_change    2.19±0.01ms    2.18±0.05ms
                float         prod         651±10μs       647±7μs
                float       quantile       531±7μs        528±10μs
                float         rank         1.40±0ms     1.38±0.01ms
                float         sem        1.26±0.01ms    1.24±0.02ms
                float        shift         236±2μs        241±2μs
                float         size         191±4μs       189±0.9μs
                float         skew         569±6ms        567±6ms
                float         std          588±10μs       584±5μs
                float         sum          653±5μs        642±4μs
                float         tail         648±8μs        646±7μs
                float        unique        551±3ms        558±6ms
                float     value_counts   1.44±0.02ms    1.45±0.03ms
                float         var          404±4μs        409±5μs
                object        all          158±2μs        158±3μs
                object        any          158±1μs        156±1μs
                object       bfill         317±8μs        316±9μs
                object       count         235±6μs        238±7μs
                object      cumcount       347±10μs       369±20μs
                object       cummax          n/a            n/a
                object       cummin          n/a            n/a
                object      cumprod          n/a            n/a
                object       cumsum          n/a            n/a
                object      describe         n/a            n/a
                object       ffill         316±20μs       323±7μs
                object       first         327±20μs       338±6μs
                object        head         584±8μs        585±10μs
                object        last         326±5μs        342±20μs
                object        mad            n/a            n/a
                object        max            n/a            n/a
                object        min            n/a            n/a
                object       median          n/a            n/a
                object        mean           n/a            n/a
                object      nunique        423±6μs        425±5μs
                object     pct_change        n/a            n/a
                object        prod           n/a            n/a
                object      quantile         n/a            n/a
                object        rank           n/a            n/a
                object        sem            n/a            n/a
                object       shift         238±4μs        233±3μs
                object        size         192±6μs        186±3μs
                object        skew           n/a            n/a
                object        std            n/a            n/a
                object        sum            n/a            n/a
                object        tail         606±10μs       619±40μs
                object       unique      2.16±0.02ms     2.64±0.4ms
                object    value_counts   1.24±0.01ms    1.24±0.03ms
                object        var            n/a            n/a
               datetime       all          163±2μs        172±10μs
               datetime       any          164±5μs        166±9μs
               datetime      bfill         320±20μs       316±4μs
               datetime      count         254±30μs       252±10μs
               datetime     cumcount       374±5μs        368±10μs
               datetime      cummax          n/a            n/a
               datetime      cummin      1.07±0.01ms    1.09±0.03ms
               datetime     cumprod          n/a            n/a
               datetime      cumsum          n/a            n/a
               datetime     describe         n/a            n/a
               datetime      ffill         319±7μs        319±6μs
               datetime      first         361±20μs       355±8μs
               datetime       head         631±60μs       624±2μs
               datetime       last         347±5μs        343±5μs
               datetime       mad            n/a            n/a
               datetime       max          364±5μs        382±20μs
               datetime       min          370±4μs        364±20μs
               datetime      median          n/a            n/a
               datetime       mean           n/a            n/a
               datetime     nunique        590±7μs        586±10μs
               datetime    pct_change        n/a            n/a
               datetime       prod           n/a            n/a
               datetime     quantile       528±10μs       532±30μs
               datetime       rank       1.37±0.02ms    1.39±0.04ms
               datetime       sem            n/a            n/a
               datetime      shift         239±20μs       242±4μs
               datetime       size         195±3μs        195±6μs
               datetime       skew           n/a            n/a
               datetime       std            n/a            n/a
               datetime       sum            n/a            n/a
               datetime       tail         657±10μs       640±10μs
               datetime      unique        618±30ms       615±20ms
               datetime   value_counts   1.49±0.02ms    1.45±0.03ms
               datetime       var            n/a            n/a
              ========== ============== ============= ================

[ 85.29%] ··· groupby.GroupManyLabels.time_sum                                                                                                                                                 ok
[ 85.29%] ··· ======= ============
               ncols
              ------- ------------
                 1     3.23±0.3ms
                1000   6.74±0.1ms
              ======= ============

[ 85.78%] ··· groupby.GroupStrings.time_multi_columns                                                                                                                                     615±5ms
[ 86.27%] ··· groupby.Int64.time_overflow                                                                                                                                                 783±9ms
[ 86.76%] ··· groupby.Nth.time_frame_nth                                                                                                                                                       ok
[ 86.76%] ··· ========== ============
                dtype
              ---------- ------------
               float32    26.7±0.9ms
               float64     27.1±2ms
               datetime   25.7±0.5ms
                object    29.0±0.6ms
              ========== ============

[ 87.25%] ··· groupby.Nth.time_frame_nth_any                                                                                                                                                   ok
[ 87.25%] ··· ========== ============
                dtype
              ---------- ------------
               float32     58.6±2ms
               float64    56.2±0.5ms
               datetime   62.2±0.8ms
                object     65.0±2ms
              ========== ============

[ 87.75%] ··· groupby.Nth.time_groupby_nth_all                                                                                                                                                 ok
[ 87.75%] ··· ========== ============
                dtype
              ---------- ------------
               float32     50.8±2ms
               float64    49.8±0.5ms
               datetime    57.2±4ms
                object     58.0±2ms
              ========== ============

[ 88.24%] ··· groupby.Nth.time_series_nth                                                                                                                                                      ok
[ 88.24%] ··· ========== ============
                dtype
              ---------- ------------
               float32    29.7±0.8ms
               float64     28.1±1ms
               datetime   32.5±0.5ms
                object     32.3±1ms
              ========== ============

[ 88.73%] ··· groupby.Nth.time_series_nth_all                                                                                                                                                  ok
[ 88.73%] ··· ========== ============
                dtype
              ---------- ------------
               float32     58.0±1ms
               float64    57.9±0.5ms
               datetime    63.7±1ms
                object     70.9±5ms
              ========== ============

[ 89.22%] ··· groupby.Nth.time_series_nth_any                                                                                                                                                  ok
[ 89.22%] ··· ========== ==========
                dtype
              ---------- ----------
               float32    58.3±2ms
               float64    60.8±3ms
               datetime   66.1±4ms
                object    69.9±2ms
              ========== ==========

[ 89.71%] ··· groupby.RankWithTies.time_rank_ties                                                                                                                                              ok
[ 89.71%] ··· ============ ============= ============= ============= ============ =============
              --                                        tie_method
              ------------ --------------------------------------------------------------------
                 dtype         first        average        dense         min           max
              ============ ============= ============= ============= ============ =============
                float64     2.92±0.09ms    2.90±0.2ms   2.91±0.06ms   2.86±0.2ms    2.87±0.2ms
                float32     2.94±0.08ms   3.00±0.09ms    2.90±0.1ms   3.03±0.3ms   2.93±0.09ms
                 int64       3.39±0.4ms   2.92±0.05ms   2.87±0.06ms   2.90±0.3ms    2.99±0.2ms
               datetime64   2.85±0.08ms    2.86±0.1ms   2.89±0.07ms   3.33±0.6ms    2.92±0.4ms
              ============ ============= ============= ============= ============ =============

[ 90.20%] ··· groupby.Size.time_category_size                                                                                                                                          8.20±0.5ms
[ 90.69%] ··· groupby.Size.time_dt_timegrouper_size                                                                                                                                      44.7±1ms
[ 91.18%] ··· groupby.Size.time_multi_size                                                                                                                                             18.4±0.7ms
[ 91.67%] ··· groupby.SumBools.time_groupby_sum_booleans                                                                                                                              2.44±0.06ms
[ 92.16%] ··· groupby.SumMultiLevel.time_groupby_sum_multiindex                                                                                                                       2.23±0.04ms
[ 92.65%] ··· groupby.Transform.time_transform_lambda_max                                                                                                                                809±30ms
[ 93.14%] ··· groupby.Transform.time_transform_multi_key1                                                                                                                                13.7±1ms
[ 93.63%] ··· groupby.Transform.time_transform_multi_key2                                                                                                                              11.3±0.2ms
[ 94.12%] ··· groupby.Transform.time_transform_multi_key3                                                                                                                              9.12±0.2ms
[ 94.61%] ··· groupby.Transform.time_transform_multi_key4                                                                                                                              4.97±0.1ms
[ 95.10%] ··· groupby.Transform.time_transform_ufunc_max                                                                                                                                 9.21±1ms
[ 95.59%] ··· groupby.TransformBools.time_transform_mean                                                                                                                               11.4±0.3ms
[ 96.08%] ··· groupby.TransformNaN.time_first                                                                                                                                         4.17±0.06ms
[ 96.57%] ··· Setting up groupby.py:172                                                                                                                                                        ok
[ 96.57%] ··· groupby.CountMultiDtype.time_multi_count                                                                                                                                 6.66±0.2ms
[ 97.06%] ··· Setting up groupby.py:198                                                                                                                                                        ok
[ 97.06%] ··· groupby.CountMultiInt.time_multi_int_count                                                                                                                               4.68±0.1ms
[ 97.55%] ··· groupby.CountMultiInt.time_multi_int_nunique                                                                                                                             12.4±0.2ms
[ 98.04%] ··· Setting up groupby.py:71                                                                                                                                                         ok
[ 98.04%] ··· groupby.Groups.time_series_groups                                                                                                                                                ok
[ 98.04%] ··· ============== ==========
                   key
              -------------- ----------
               int64_small    46.6±1ms
               int64_large    658±10ms
               object_small   91.7±3ms
               object_large   755±50ms
              ============== ==========

[ 98.53%] ··· Setting up groupby.py:260                                                                                                                                                        ok
[ 98.53%] ··· groupby.MultiColumn.time_col_select_lambda_sum                                                                                                                              109±3ms
[ 99.02%] ··· groupby.MultiColumn.time_col_select_numpy_sum                                                                                                                            18.2±0.5ms
[ 99.51%] ··· groupby.MultiColumn.time_cython_sum                                                                                                                                      21.5±0.4ms
[100.00%] ··· groupby.MultiColumn.time_lambda_sum                                                                                                                                         204±9ms

BENCHMARKS NOT SIGNIFICANTLY CHANGED.

@jreback jreback added this to the 0.25.0 milestone Apr 19, 2019
@adbull
Copy link
Contributor Author

adbull commented Apr 19, 2019

@jreback Done.

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.

couple of comments, ping on green (either if making the change or showing why you cannot)

@adbull
Copy link
Contributor Author

adbull commented Apr 20, 2019

@jreback Done. Some checks are failing, but seems unrelated to this PR?

@jreback jreback merged commit 9f04bb8 into pandas-dev:master Apr 20, 2019
@jreback
Copy link
Contributor

jreback commented Apr 20, 2019

thanks @adbull

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Categorical Categorical Data Type Groupby Missing-data np.nan, pd.NaT, pd.NA, dropna, isnull, interpolate
Projects
None yet
Development

Successfully merging this pull request may close these issues.

corrupted data and segfault in groupby cumsum/cumprod/cummin/cummax with absent categories
3 participants