BUG: Fixes GH9311 groupby on datetime64
State: closed

datetime64 columns were changing at the nano-second scale when
applying a groupby aggregator.

closes #9311 
closes #6620 


Labels:
name: Bug
name: Groupby
name: Dtype Conversions
description: Unexpected or buggy dtype conversions

Comments:
This looks like some nice fixes but also looks likely under-tested -- you've changed a lot of functions and only added tests for one of them.

I would probably scale this back to only change operations without any possibility of precision/overflow issues -- I think that's `first`/`last`/`min`/`max`/`nth`. The arithmetic `mean`/`sum`/`var`/`std` should probably wait until we define it even on datetime64 without grouping, as @jreback mentions above (though efforts there would certainly be appreciated).

Also, it is almost impossible to write too many tests :).

Awesome. Thanks for the feedback. I'll have updates, and more tests in here shortly.

@shoyer or @jreback - I'm very close to having the above fixes ready on this PR. I do need a bit of guidance on one thing though. Now that the Cython functions are using iNaT for nan values on the integer functions, they are returning the integer value (-9223372036854775808) back in the ndarray, as I would expect. 

In order to get it working so that na functions will work (like fillna), I need to replace those values back with something that will be evaluated as na. Is there a helper function somewhere to do that?

@iwschris iNaT -> NaT happens automatically when you cast back to datetime64. You can use `values.view('datetime64[ns]')` for that, assuming values is an array with int64 dtype. This won't work for integers -- you'll need to upcast those to float.

@iwschris just a do the view as @shoyer suggest
you know you have an int64 (or int32) so this will work
(only take a view if it's actually a datetime64/tiemselta64) in the first place
this should be done in python for consistency (we just normally return basic types to/from cython)

Awesome. Thanks!

@shoyer -- Pretty sure this is ready for review again. I was able to keep the safe casting turned on in internals.py and I validated that vbench is still looking pretty good.

Here's the output from vbench:

```

Invoked with :
--ncalls: 3
--repeats: 3


-------------------------------------------------------------------------------
Test name                                    | head[ms] | base[ms] |  ratio   |
-------------------------------------------------------------------------------
index_from_series_ctor                       |   0.0147 |   0.0337 |   0.4363 |
series_constructor_ndarray                   |   0.0137 |   0.0277 |   0.4943 |
concat_empty_frames1                         |   0.7093 |   1.3227 |   0.5363 |
frame_get_numeric_data                       |   0.0956 |   0.1766 |   0.5414 |
join_dataframe_index_single_key_small        |   7.9147 |  13.9790 |   0.5662 |
groupby_ngroups_100_first                    |   0.2720 |   0.4776 |   0.5694 |
read_csv_infer_datetime_format_custom        |   7.8737 |  11.8280 |   0.6657 |
join_dataframe_index_single_key_bigger       |   8.9413 |  12.7583 |   0.7008 |
groupby_ngroups_100_last                     |   0.2457 |   0.3486 |   0.7046 |
groupby_ngroups_10000_median                 |   2.1223 |   2.9956 |   0.7085 |
frame_fancy_lookup_all                       |  10.6823 |  14.9640 |   0.7139 |
groupby_ngroups_100_max                      |   0.2611 |   0.3640 |   0.7172 |
groupby_ngroups_100_min                      |   0.2487 |   0.3421 |   0.7270 |
groupby_ngroups_100_count                    |   0.2720 |   0.3714 |   0.7325 |
frame_from_series                            |   0.1073 |   0.1454 |   0.7381 |
ctor_index_array_string                      |   0.0143 |   0.0193 |   0.7407 |
dataframe_resample_mean_numpy                |   2.4650 |   3.2423 |   0.7603 |
frame_iteritems_cached                       |   0.4021 |   0.5227 |   0.7692 |
index_float64_boolean_indexer                |   2.8100 |   3.6487 |   0.7701 |
frame_constructor_ndarray                    |   0.0670 |   0.0866 |   0.7734 |
reindex_frame_level_align                    |   0.5527 |   0.6983 |   0.7914 |
frame_count_level_axis0_multi                |  53.3690 |  66.9137 |   0.7976 |
timeseries_custom_bmonthbegin_incr_n         |   0.1923 |   0.2387 |   0.8059 |
frame_ctor_dtindex_BYearEndx1                |   1.1930 |   1.4800 |   0.8061 |
frame_reindex_axis0                          | 123.4897 | 152.9363 |   0.8075 |
frame_assign_timeseries_index                |   0.5610 |   0.6904 |   0.8126 |
read_csv_infer_datetime_format_iso8601       |   1.4773 |   1.8067 |   0.8177 |
groupby_frame_cython_many_columns            |   1.9461 |   2.3790 |   0.8180 |
frame_repr_wide                              |  10.0773 |  12.3091 |   0.8187 |
frame_ctor_dtindex_BDayx2                    |   0.9710 |   1.1800 |   0.8229 |
frame_nonunique_equal                        |   6.3940 |   7.7110 |   0.8292 |
frame_ctor_dtindex_QuarterBeginx1            |   0.9793 |   1.1793 |   0.8304 |
reindex_fillna_pad                           |   0.2143 |   0.2580 |   0.8306 |
frame_apply_ref_by_name                      |  10.7396 |  12.9287 |   0.8307 |
groupby_ngroups_10000_max                    |   1.5074 |   1.8050 |   0.8351 |
groupby_ngroups_10000_first                  |   1.5857 |   1.8973 |   0.8358 |
groupby_ngroups_100_cummax                   |  11.6933 |  13.9883 |   0.8359 |
index_datetime_intersection                  |   8.0390 |   9.6114 |   0.8364 |
frame_mask_floats                            |   4.5877 |   5.4599 |   0.8403 |
frame_drop_duplicates                        |  11.3926 |  13.4079 |   0.8497 |
groupby_ngroups_100_std                      |   0.3264 |   0.3827 |   0.8530 |
frame_reindex_columns                        |   0.2379 |   0.2789 |   0.8530 |
groupby_multi_size                           |  17.3423 |  20.3076 |   0.8540 |
series_ix_slice                              |   0.0416 |   0.0486 |   0.8562 |
datetimeindex_unique                         |   0.0723 |   0.0843 |   0.8577 |
groupby_first_float64                        |   2.2407 |   2.6090 |   0.8588 |
frame_ctor_dtindex_BQuarterEndx2             |   1.1080 |   1.2867 |   0.8611 |
reindex_frame_level_reindex                  |   0.5770 |   0.6690 |   0.8624 |
timeseries_custom_bmonthbegin_decr_n         |   0.2031 |   0.2350 |   0.8641 |
frame_ctor_dtindex_MonthEndx1                |   1.0313 |   1.1810 |   0.8732 |
groupby_series_nth_none                      |   1.0096 |   1.1547 |   0.8744 |
groupby_ngroups_100_rank                     |  11.8863 |  13.5717 |   0.8758 |
stat_ops_frame_sum_float_axis_1              |   3.5137 |   3.9994 |   0.8785 |
series_ctor_from_dict                        |   2.0247 |   2.3017 |   0.8796 |
frame_ctor_dtindex_MonthEndx2                |   1.0126 |   1.1484 |   0.8818 |
groupby_frame_singlekey_integer              |   1.3860 |   1.5713 |   0.8821 |
frame_ctor_dtindex_BYearBeginx1              |   1.1864 |   1.3447 |   0.8823 |
frame_drop_dup_na_inplace                    |   1.7404 |   1.9697 |   0.8836 |
groupby_frame_nth_any                        |   4.4223 |   4.9994 |   0.8846 |
frame_drop_dup_inplace                       |   1.8404 |   2.0734 |   0.8876 |
reindex_daterange_pad                        |   0.5534 |   0.6224 |   0.8892 |
groupby_ngroups_10000_var                    |   1.6543 |   1.8600 |   0.8894 |
timeseries_infer_freq                        |   6.6311 |   7.4290 |   0.8926 |
frame_interpolate_some_good                  |   0.9607 |   1.0746 |   0.8940 |
groupby_ngroups_100_cummin                   |  10.7533 |  12.0024 |   0.8959 |
read_csv_standard                            |   8.7403 |   9.7334 |   0.8980 |
timeseries_to_datetime_iso8601               |   3.1000 |   3.4483 |   0.8990 |
timeseries_to_datetime_YYYYMMDD              |   6.3020 |   6.9950 |   0.9009 |
sql_string_write_sqlalchemy                  |  54.9703 |  60.7810 |   0.9044 |
groupby_ngroups_10000_count                  |   1.5697 |   1.7330 |   0.9058 |
groupby_ngroups_10000_diff                   | 905.3814 | 999.3493 |   0.9060 |
frame_html_repr_trunc_mi                     |  29.4023 |  32.4394 |   0.9064 |
groupby_ngroups_10000_std                    |   1.8214 |   2.0063 |   0.9078 |
groupby_ngroups_10000_sem                    |   2.1150 |   2.3276 |   0.9087 |
frame_from_records_generator_nrows           |   0.6553 |   0.7210 |   0.9090 |
index_int64_union                            |  52.9044 |  58.1080 |   0.9104 |
multiindex_from_product                      |   8.3253 |   9.1114 |   0.9137 |
index_datetime_union                         |   7.9623 |   8.7016 |   0.9150 |
frame_ctor_dtindex_Weekx2                    |   0.7860 |   0.8587 |   0.9153 |
groupby_nth_object_any                       | 872.7303 | 951.7753 |   0.9169 |
groupby_ngroups_100_mean                     |   0.2930 |   0.3186 |   0.9197 |
packers_read_pack                            |  62.9237 |  68.2081 |   0.9225 |
groupby_frame_apply_overhead                 |   5.9593 |   6.4523 |   0.9236 |
timeseries_large_lookup_value                |   0.0126 |   0.0137 |   0.9244 |
packers_write_json_mixed_float_int_str       |  93.9660 | 101.5189 |   0.9256 |
frame_ctor_dtindex_BYearBeginx2              |   1.1083 |   1.1961 |   0.9266 |
eval_frame_add_python_one_thread             |  15.0924 |  16.2520 |   0.9286 |
frame_iloc_dups                              |   0.1764 |   0.1896 |   0.9300 |
groupby_ngroups_10000_sum                    |   1.8277 |   1.9616 |   0.9317 |
groupby_ngroups_10000_last                   |   1.7217 |   1.8463 |   0.9325 |
packers_read_stata                           |  36.7910 |  39.4524 |   0.9325 |
read_csv_precise_converter                   |   1.1957 |   1.2817 |   0.9328 |
timeseries_asof                              |   5.7844 |   6.1994 |   0.9331 |
series_value_counts_int64                    |   1.5830 |   1.6963 |   0.9332 |
frame_dtypes                                 |   0.0799 |   0.0857 |   0.9332 |
panel_shift_minor                            |   0.0700 |   0.0750 |   0.9333 |
groupby_dt_size                              |  18.6746 |  19.9850 |   0.9344 |
timeseries_custom_bday_cal_incr_neg_n        |   0.0196 |   0.0210 |   0.9356 |
index_str_boolean_indexer                    |   6.8731 |   7.3450 |   0.9357 |
groupby_first_float32                        |   2.4620 |   2.6309 |   0.9358 |
stat_ops_frame_sum_float_axis_0              |   3.4143 |   3.6473 |   0.9361 |
groupby_multi_different_functions            |   8.2520 |   8.8123 |   0.9364 |
timeseries_iter_datetimeindex_preexit        |   9.0630 |   9.6117 |   0.9429 |
frame_repr_tall                              |  17.1143 |  18.1334 |   0.9438 |
packers_read_json_date_index                 | 139.4784 | 147.7621 |   0.9439 |
dtype_infer_datetime64                       |   5.7657 |   6.0943 |   0.9461 |
read_csv_roundtrip_converter                 |   1.8900 |   1.9963 |   0.9468 |
groupby_ngroups_100_prod                     |   0.3593 |   0.3793 |   0.9472 |
lib_fast_zip_fillna                          |   8.9866 |   9.4833 |   0.9476 |
frame_reindex_both_axes_ix                   |  27.4524 |  28.9690 |   0.9476 |
sort_level_zero                              |   8.5460 |   9.0003 |   0.9495 |
groupby_ngroups_10000_cumprod                | 987.3126 | 1039.5793 |   0.9497 |
groupby_indices                              |   4.2933 |   4.5194 |   0.9500 |
frame_ctor_dtindex_MonthBeginx2              |   1.0253 |   1.0786 |   0.9506 |
series_getitem_slice                         |   0.0339 |   0.0357 |   0.9510 |
read_csv_skiprows                            |  11.6111 |  12.2014 |   0.9516 |
sql_float_write_fallback                     |  23.6900 |  24.8843 |   0.9520 |
sql_write_sqlalchemy                         | 121.5783 | 127.5000 |   0.9536 |
packers_read_json                            | 142.3674 | 149.2996 |   0.9536 |
sql_float_read_table_sqlalchemy              |  11.9420 |  12.5156 |   0.9542 |
frame_ctor_dtindex_Weekx1                    |   0.8196 |   0.8589 |   0.9542 |
groupby_ngroups_100_head                     |   0.5653 |   0.5923 |   0.9544 |
join_non_unique_equal                        |   0.3424 |   0.3587 |   0.9546 |
groupby_multi_different_numpy_functions      |   8.0523 |   8.4341 |   0.9547 |
merge_2intkey_sort                           |  24.8954 |  26.0690 |   0.9550 |
frame_ctor_dtindex_BMonthBeginx1             |   1.1203 |   1.1717 |   0.9562 |
groupby_transform_multi_key2                 |  33.9526 |  35.4800 |   0.9570 |
series_timestamp_compare                     |   7.5290 |   7.8657 |   0.9572 |
packers_write_stata_with_validation          |  31.8860 |  33.2757 |   0.9582 |
frame_ctor_dtindex_DateOffsetx2              |   0.8277 |   0.8633 |   0.9588 |
strings_count                                |   4.7774 |   4.9780 |   0.9597 |
sql_float_read_query_fallback                |   6.5816 |   6.8550 |   0.9601 |
frame_apply_pass_thru                        |   3.2713 |   3.4067 |   0.9603 |
index_float64_div                            |   2.0644 |   2.1497 |   0.9603 |
frame_multi_and_no_ne                        |  20.8013 |  21.6600 |   0.9604 |
index_int64_intersection                     |  10.9847 |  11.4144 |   0.9624 |
frame_ctor_dtindex_DateOffsetx1              |   0.8663 |   0.8997 |   0.9629 |
timeseries_iter_periodindex_preexit          |   9.4426 |   9.8027 |   0.9633 |
strings_len                                  |   1.3343 |   1.3837 |   0.9643 |
frame_to_csv                                 | 110.6810 | 114.6793 |   0.9651 |
strings_cat                                  |   0.5057 |   0.5236 |   0.9657 |
frame_count_level_axis0_mixed_dtypes_multi   | 107.9280 | 111.7450 |   0.9658 |
join_dataframe_index_multi                   |  12.2537 |  12.6839 |   0.9661 |
groupby_ngroups_10000_mad                    | 3435.5440 | 3555.5203 |   0.9663 |
sql_float_write_sqlalchemy                   |  55.9303 |  57.8830 |   0.9663 |
frame_ctor_dtindex_Easterx1                  |   0.9393 |   0.9716 |   0.9667 |
groupby_ngroups_100_any                      |   6.9167 |   7.1410 |   0.9686 |
stats_rank2d_axis1_average                   |   8.8743 |   9.1600 |   0.9688 |
groupby_ngroups_10000_describe               | 12356.2800 | 12750.7817 |   0.9691 |
groupby_multi_series_op                      |  10.1536 |  10.4600 |   0.9707 |
packers_write_json                           |  73.1703 |  75.3726 |   0.9708 |
series_getitem_array                         |   0.3147 |   0.3237 |   0.9723 |
frame_dropna_axis1_any_mixed_dtypes          | 164.5314 | 169.1933 |   0.9724 |
frame_dropna_axis0_any_mixed_dtypes          | 159.9306 | 164.4520 |   0.9725 |
concat_small_frames                          |  40.3993 |  41.5320 |   0.9727 |
timeseries_timestamp_downsample_mean         |   3.4340 |   3.5297 |   0.9729 |
frame_ctor_dtindex_BusinessDayx2             |   0.9197 |   0.9443 |   0.9739 |
groupby_transform_series2                    | 108.0357 | 110.8853 |   0.9743 |
groupby_ngroups_100_sum                      |   0.3707 |   0.3804 |   0.9745 |
frame_ctor_dtindex_YearEndx1                 |   0.8994 |   0.9213 |   0.9762 |
series_xs_mi_ix                              |   2.9663 |   3.0383 |   0.9763 |
packers_write_csv                            | 943.0904 | 965.2163 |   0.9771 |
timeseries_asof_single                       |   0.0173 |   0.0177 |   0.9776 |
frame_dropna_axis0_all_mixed_dtypes          | 192.6063 | 196.9613 |   0.9779 |
groupby_nth_datetimes_any                    | 889.3877 | 909.3717 |   0.9780 |
frame_ctor_dtindex_CDayx2                    |   0.8940 |   0.9136 |   0.9785 |
frame_interpolate                            |  64.3644 |  65.7176 |   0.9794 |
timeseries_iter_datetimeindex                | 539.4704 | 550.7627 |   0.9795 |
frame_to_string_floats                       |  22.1376 |  22.5883 |   0.9800 |
eval_frame_mult_python                       |  16.0577 |  16.3810 |   0.9803 |
frame_ctor_dtindex_CBMonthBeginx2            |   2.0204 |   2.0594 |   0.9811 |
panel_shift                                  |   0.0716 |   0.0730 |   0.9815 |
frame_ctor_dtindex_BQuarterEndx1             |   1.0660 |   1.0850 |   0.9826 |
reindex_daterange_backfill                   |   0.7203 |   0.7331 |   0.9827 |
packers_write_json_date_index                |  83.0213 |  84.4580 |   0.9830 |
timeseries_custom_bmonthend_decr_n           |   0.2303 |   0.2340 |   0.9840 |
frame_mask_bools                             |   6.4433 |   6.5400 |   0.9852 |
timeseries_add_irregular                     |   9.7550 |   9.8964 |   0.9857 |
frame_apply_lambda_mean                      |   4.3870 |   4.4500 |   0.9858 |
series_drop_duplicates_string                |   0.4007 |   0.4063 |   0.9861 |
frame_ctor_nested_dict                       |  56.1170 |  56.9040 |   0.9862 |
frame_ctor_dtindex_YearBeginx1               |   0.8856 |   0.8980 |   0.9863 |
groupby_pivot_table                          |  12.7386 |  12.9116 |   0.9866 |
frame_interpolate_some_good_infer            |   2.0733 |   2.1013 |   0.9866 |
frame_ctor_dtindex_YearEndx2                 |   0.9444 |   0.9566 |   0.9872 |
groupby_ngroups_100_all                      |   7.2843 |   7.3783 |   0.9873 |
groupby_ngroups_10000_cumsum                 | 987.8446 | 1000.3951 |   0.9875 |
groupby_ngroups_100_sem                      |   0.6073 |   0.6146 |   0.9881 |
groupby_transform_multi_key1                 |  49.5160 |  50.1057 |   0.9882 |
melt_dataframe                               |   1.4334 |   1.4487 |   0.9894 |
stat_ops_frame_sum_int_axis_1                |   3.4297 |   3.4643 |   0.9900 |
strings_contains_many                        |   4.6546 |   4.6970 |   0.9910 |
frame_mult                                   |   4.3540 |   4.3923 |   0.9913 |
groupby_frame_apply                          |  29.8660 |  30.1157 |   0.9917 |
panel_pct_change_major                       | 5035.1934 | 5074.3450 |   0.9923 |
read_csv_comment2                            |  20.2267 |  20.3773 |   0.9926 |
datetimeindex_add_offset                     |   0.1920 |   0.1934 |   0.9930 |
strings_endswith                             |   3.2713 |   3.2940 |   0.9931 |
frame_apply_np_mean                          |   4.2990 |   4.3247 |   0.9941 |
datetimeindex_normalize                      |   2.6603 |   2.6757 |   0.9942 |
frame_dropna_axis1_any                       |  19.4923 |  19.6040 |   0.9943 |
packers_write_json_mixed_delta_int_tstamp    | 102.4027 | 102.9747 |   0.9944 |
read_csv_vb                                  |  16.3047 |  16.3777 |   0.9955 |
groupby_ngroups_10000_cumcount               |  57.6493 |  57.8650 |   0.9963 |
frame_object_equal                           |   6.4127 |   6.4360 |   0.9964 |
frame_ctor_dtindex_Easterx2                  |   0.9423 |   0.9456 |   0.9965 |
series_ix_scalar                             |   0.0236 |   0.0237 |   0.9966 |
write_csv_standard                           |  38.6047 |  38.7180 |   0.9971 |
groupby_transform_multi_key4                 | 100.7117 | 100.9640 |   0.9975 |
groupby_ngroups_10000_size                   |   3.2973 |   3.3036 |   0.9981 |
groupby_nth_float32_none                     |  66.8260 |  66.9477 |   0.9982 |
timeseries_with_format_no_exact              | 601.0760 | 601.8333 |   0.9987 |
frame_fillna_many_columns_pad                |   3.2874 |   3.2890 |   0.9995 |
datetimeindex_infer_dst                      |   2.6283 |   2.6280 |   1.0001 |
panel_from_dict_same_index                   |  30.4280 |  30.4210 |   1.0002 |
groupby_ngroups_10000_value_counts           | 3861.8680 | 3859.5047 |   1.0006 |
timeseries_asof_nan                          |   5.5869 |   5.5803 |   1.0012 |
frame_multi_and                              |  22.1247 |  22.0914 |   1.0015 |
frame_add_st                                 |   4.3914 |   4.3824 |   1.0020 |
groupby_frame_median                         |   4.9524 |   4.9326 |   1.0040 |
frame_fancy_lookup                           |   2.5950 |   2.5843 |   1.0042 |
frame_ctor_dtindex_QuarterEndx1              |   1.0297 |   1.0243 |   1.0052 |
groupby_last_object                          |  12.3967 |  12.3320 |   1.0052 |
timeseries_is_month_start                    |   2.3900 |   2.3774 |   1.0053 |
series_align_left_monotonic                  |  12.2104 |  12.1450 |   1.0054 |
lib_fast_zip                                 |   6.3469 |   6.3126 |   1.0054 |
frame_ctor_dtindex_CBMonthEndx2              |   2.8620 |   2.8457 |   1.0057 |
groupby_ngroups_10000_pct_change             | 2949.9527 | 2930.2514 |   1.0067 |
frame_fillna_inplace                         |   7.3990 |   7.3454 |   1.0073 |
eval_frame_add_python                        |  14.7847 |  14.6750 |   1.0075 |
groupby_nth_object_none                      | 479.3561 | 475.7130 |   1.0077 |
timeseries_slice_minutely                    |   0.0400 |   0.0397 |   1.0080 |
frame_mult_st                                |   4.3757 |   4.3403 |   1.0081 |
groupby_multi_python                         |  64.3490 |  63.8003 |   1.0086 |
frame_reindex_both_axes                      |  27.2237 |  26.9873 |   1.0088 |
dataframe_reindex                            |   0.2473 |   0.2450 |   1.0094 |
groupby_nth_datetimes_none                   | 460.5076 | 456.1773 |   1.0095 |
frame_ctor_dtindex_QuarterEndx2              |   1.0264 |   1.0166 |   1.0096 |
frame_iloc_big                               |   0.1190 |   0.1176 |   1.0115 |
sql_datetime_write_sqlalchemy                | 105.9604 | 104.7047 |   1.0120 |
timestamp_ops_diff1                          |  12.7310 |  12.5770 |   1.0122 |
series_value_counts_strings                  |   3.2010 |   3.1614 |   1.0125 |
frame_ctor_dtindex_BMonthEndx2               |   0.9724 |   0.9593 |   1.0136 |
frame_shift_axis_1                           |  13.0233 |  12.8467 |   1.0137 |
frame_ctor_dtindex_BYearEndx2                |   1.1053 |   1.0897 |   1.0144 |
frame_dropna_axis0_any                       |  20.1437 |  19.8566 |   1.0145 |
frame_ctor_dtindex_CBMonthBeginx1            |   2.2947 |   2.2613 |   1.0148 |
reshape_stack_simple                         |   1.7076 |   1.6827 |   1.0148 |
reindex_fillna_pad_float32                   |   0.4029 |   0.3970 |   1.0150 |
append_frame_single_homogenous               |   0.8920 |   0.8783 |   1.0156 |
frame_add_no_ne                              |   4.4303 |   4.3620 |   1.0157 |
indexing_dataframe_boolean_rows_object       |   0.3884 |   0.3823 |   1.0158 |
groupby_multi_cython                         |  11.0527 |  10.8797 |   1.0159 |
frame_ctor_dtindex_CDayx1                    |   0.9046 |   0.8896 |   1.0169 |
groupby_ngroups_10000_rank                   | 1007.1193 | 989.4890 |   1.0178 |
groupby_nth_float64_none                     |  65.9187 |  64.7260 |   1.0184 |
frame_count_level_axis1_mixed_dtypes_multi   |  81.4800 |  79.9817 |   1.0187 |
frame_sort_index_by_columns                  |  31.9147 |  31.3116 |   1.0193 |
groupby_ngroups_10000_head                   |  65.1494 |  63.9053 |   1.0195 |
frame_to_csv_mixed                           | 503.7344 | 494.0030 |   1.0197 |
unstack_sparse_keyspace                      |   0.9720 |   0.9530 |   1.0199 |
read_csv_thou_vb                             |  14.9190 |  14.6270 |   1.0200 |
timeseries_with_format_replace               | 825.8780 | 809.6297 |   1.0201 |
frame_dropna_axis1_all_mixed_dtypes          | 201.0813 | 197.0267 |   1.0206 |
groupby_transform_multi_key3                 | 563.4913 | 551.8860 |   1.0210 |
timedelta_convert_int                        |   0.1133 |   0.1109 |   1.0215 |
match_strings                                |   0.2960 |   0.2897 |   1.0217 |
timeseries_iter_periodindex                  | 937.8570 | 917.8220 |   1.0218 |
join_dataframe_integer_key                   |   1.1926 |   1.1670 |   1.0220 |
stat_ops_series_std                          |   0.3860 |   0.3777 |   1.0221 |
frame_multi_and_st                           |  22.6813 |  22.1707 |   1.0230 |
frame_apply_axis_1                           |  58.1466 |  56.8313 |   1.0231 |
groupby_ngroups_100_diff                     |  11.0393 |  10.7853 |   1.0236 |
frame_ctor_dtindex_BQuarterBeginx1           |   1.1190 |   1.0923 |   1.0244 |
frame_ctor_dtindex_BQuarterBeginx2           |   1.1107 |   1.0840 |   1.0246 |
frame_float_equal                            |   1.3397 |   1.3063 |   1.0256 |
frame_from_records_generator                 |  54.8224 |  53.4543 |   1.0256 |
strings_contains_many_noregex                |   2.0823 |   2.0300 |   1.0258 |
strings_get                                  |   2.3750 |   2.3136 |   1.0266 |
replace_replacena                            |   0.4417 |   0.4303 |   1.0266 |
dtype_infer_timedelta64_2                    |   8.5163 |   8.2900 |   1.0273 |
frame_html_repr_trunc_si                     |  21.0226 |  20.4570 |   1.0276 |
dataframe_resample_mean_string               |   2.4560 |   2.3890 |   1.0280 |
groupby_ngroups_10000_unique                 | 511.7454 | 497.7160 |   1.0282 |
frame_shift_axis0                            |   9.3033 |   9.0457 |   1.0285 |
frame_dropna_axis0_all                       |  45.4573 |  44.1926 |   1.0286 |
groupby_ngroups_100_nunique                  |   7.7484 |   7.5307 |   1.0289 |
sql_string_write_fallback                    |  23.1417 |  22.4884 |   1.0291 |
dataframe_resample_max_numpy                 |   1.2786 |   1.2423 |   1.0292 |
panel_pct_change_items                       | 5977.8221 | 5807.0730 |   1.0294 |
frame_loc_dups                               |   0.6920 |   0.6714 |   1.0307 |
frame_ctor_dtindex_BMonthBeginx2             |   1.1263 |   1.0924 |   1.0311 |
read_csv_default_converter                   |   1.3087 |   1.2683 |   1.0318 |
read_table_multiple_date_baseline            |  62.8977 |  60.9293 |   1.0323 |
groupby_ngroups_100_value_counts             |  37.9097 |  36.7200 |   1.0324 |
strings_upper                                |   4.4840 |   4.3400 |   1.0332 |
eval_frame_and_python_one_thread             |  21.4583 |  20.7507 |   1.0341 |
frame_insert_100_columns_begin               |  25.8463 |  24.9857 |   1.0344 |
groupby_agg_builtins1                        |   7.4780 |   7.2234 |   1.0353 |
eval_frame_and_python                        |  20.7856 |  20.0644 |   1.0359 |
series_getitem_list_like                     |   0.1480 |   0.1427 |   1.0367 |
strings_strip                                |   3.4354 |   3.3133 |   1.0368 |
frame_ctor_dtindex_BMonthEndx1               |   0.9767 |   0.9417 |   1.0372 |
frame_mult_no_ne                             |   4.4643 |   4.3034 |   1.0374 |
groupby_ngroups_100_cumcount                 |   0.5494 |   0.5294 |   1.0378 |
frame_add                                    |   4.5600 |   4.3924 |   1.0382 |
series_string_vector_slice                   | 168.7703 | 162.5583 |   1.0382 |
groupby_ngroups_10000_cummin                 | 1077.7996 | 1038.0610 |   1.0383 |
groupby_ngroups_10000_all                    | 720.6297 | 694.0330 |   1.0383 |
strings_extract                              |  34.1103 |  32.8497 |   1.0384 |
concat_empty_frames2                         |   0.7330 |   0.7057 |   1.0386 |
frame_ctor_dtindex_CBMonthEndx1              |   2.9496 |   2.8390 |   1.0390 |
packers_write_json_T                         |  87.2324 |  83.9403 |   1.0392 |
groupby_simple_compress_timing               |  22.7056 |  21.8263 |   1.0403 |
frame_ctor_dtindex_YearBeginx2               |   0.8867 |   0.8500 |   1.0432 |
dtype_infer_uint32                           |   0.3046 |   0.2920 |   1.0433 |
groupby_frame_nth_none                       |   1.5750 |   1.5093 |   1.0435 |
strings_startswith                           |   3.4940 |   3.3460 |   1.0442 |
strings_encode_decode                        |   0.2256 |   0.2160 |   1.0445 |
sql_datetime_read_as_native_sqlalchemy       |  19.7659 |  18.9184 |   1.0448 |
groupby_ngroups_10000_mean                   |   1.6270 |   1.5570 |   1.0450 |
frame_dropna_axis1_all                       |  54.1590 |  51.7350 |   1.0469 |
groupby_dt_timegrouper_size                  |  14.8040 |  14.1377 |   1.0471 |
groupby_agg_builtins2                        |  33.8887 |  32.3486 |   1.0476 |
packers_write_sql                            | 1956.6897 | 1866.3857 |   1.0484 |
panel_pct_change_minor                       | 5288.4736 | 5042.6934 |   1.0487 |
frame_reindex_axis1                          | 143.6096 | 136.9224 |   1.0488 |
sort_level_one                               |   8.7850 |   8.3740 |   1.0491 |
timeseries_1min_5min_ohlc                    |   0.6716 |   0.6401 |   1.0493 |
groupby_ngroups_10000_nunique                | 704.0600 | 670.6223 |   1.0499 |
stats_rank2d_axis0_average                   |  18.2641 |  17.3707 |   1.0514 |
groupby_apply_dict_return                    |  25.1443 |  23.9117 |   1.0515 |
strings_lower                                |   4.9067 |   4.6660 |   1.0516 |
groupby_transform_series                     |  15.4867 |  14.7260 |   1.0517 |
series_ix_array                              |   0.5894 |   0.5604 |   1.0518 |
multiindex_with_datetime_level_sliced        |   0.1463 |   0.1390 |   1.0526 |
groupby_ngroups_10000_skew                   | 981.4417 | 930.7914 |   1.0544 |
groupby_ngroups_100_skew                     |   9.8927 |   9.3813 |   1.0545 |
frame_ctor_nested_dict_int64                 |  60.3494 |  57.1480 |   1.0560 |
frame_to_html_mixed                          | 165.5410 | 156.7531 |   1.0561 |
frame_ctor_list_of_dict                      |  59.4960 |  56.2257 |   1.0582 |
groupby_ngroups_100_mad                      |  35.4846 |  33.4873 |   1.0596 |
groupby_ngroups_10000_tail                   |  60.6120 |  57.1950 |   1.0597 |
groupby_transform                            | 119.0536 | 111.8713 |   1.0642 |
stats_rank_average                           |  25.0426 |  23.5287 |   1.0643 |
timestamp_ops_diff2                          |  16.7730 |  15.7553 |   1.0646 |
frame_ctor_dtindex_BusinessDayx1             |   0.9303 |   0.8733 |   1.0652 |
sql_write_fallback                           |  48.0767 |  45.0877 |   1.0663 |
timestamp_series_compare                     |   7.7377 |   7.2530 |   1.0668 |
indexing_dataframe_boolean_rows              |   0.2377 |   0.2227 |   1.0675 |
reshape_unstack_simple                       |   2.2411 |   2.0994 |   1.0675 |
strings_rstrip                               |   3.0786 |   2.8836 |   1.0676 |
dti_reset_index_tz                           |   4.7610 |   4.4587 |   1.0678 |
multiindex_with_datetime_level_full          |   9.3650 |   8.7677 |   1.0681 |
datetime_index_intersection                  |   0.2949 |   0.2760 |   1.0685 |
concat_series_axis1                          |  65.8151 |  61.4983 |   1.0702 |
series_getitem_pos_slice                     |   0.0397 |   0.0370 |   1.0708 |
dtype_infer_float32                          |   0.2507 |   0.2340 |   1.0713 |
stat_ops_frame_mean_int_axis_1               |   4.8420 |   4.5130 |   1.0729 |
stat_ops_frame_mean_float_axis_0             |   3.8706 |   3.6034 |   1.0742 |
timeseries_custom_bday_decr                  |   0.0240 |   0.0223 |   1.0747 |
series_iloc_list_like                        |   0.2007 |   0.1867 |   1.0749 |
frame_reindex_upcast                         |   5.9930 |   5.5740 |   1.0752 |
indexing_panel_subset                        |   0.6670 |   0.6204 |   1.0752 |
packers_read_pickle                          | 108.4936 | 100.8810 |   1.0755 |
groupby_ngroups_10000_any                    | 707.5600 | 657.6886 |   1.0758 |
dtype_infer_timedelta64_1                    |  46.3394 |  42.9693 |   1.0784 |
groupby_ngroups_10000_cummax                 | 1078.3180 | 998.9180 |   1.0795 |
groupby_ngroups_10000_prod                   |   1.8747 |   1.7360 |   1.0799 |
reindex_fillna_backfill                      |   0.2646 |   0.2450 |   1.0801 |
groupby_ngroups_100_tail                     |   0.6087 |   0.5634 |   1.0804 |
strings_contains_few                         |   4.5360 |   4.1974 |   1.0807 |
sql_read_query_fallback                      |  26.6887 |  24.6690 |   1.0819 |
groupby_series_nth_any                       |   3.1127 |   2.8744 |   1.0829 |
frame_ctor_dtindex_CustomBusinessDayx1       |   0.9580 |   0.8833 |   1.0845 |
strings_center                               |   3.7570 |   3.4637 |   1.0847 |
stat_ops_level_frame_sum                     |   2.1319 |   1.9654 |   1.0848 |
strings_lstrip                               |   3.3210 |   3.0596 |   1.0854 |
frame_get_dtype_counts                       |   0.0757 |   0.0697 |   1.0855 |
frame_ctor_dtindex_BDayx1                    |   0.9207 |   0.8463 |   1.0879 |
merge_2intkey_nosort                         |  13.6313 |  12.5194 |   1.0888 |
stats_rolling_mean                           |   0.8846 |   0.8110 |   1.0907 |
dataframe_resample_min_string                |   1.4046 |   1.2860 |   1.0922 |
groupby_ngroups_100_var                      |   0.3340 |   0.3057 |   1.0928 |
timeseries_sort_index                        |   7.1480 |   6.5390 |   1.0931 |
groupby_ngroups_100_pct_change               |  30.0250 |  27.4397 |   1.0942 |
packers_read_sql                             | 456.4653 | 417.0200 |   1.0946 |
groupby_ngroups_100_unique                   |   5.5910 |   5.1040 |   1.0954 |
replace_large_dict                           | 9793.7127 | 8937.8887 |   1.0958 |
timedelta_convert_string_seconds             | 103.9890 |  94.8300 |   1.0966 |
sql_read_table_sqlalchemy                    |  32.6030 |  29.7074 |   1.0975 |
read_table_multiple_date                     | 144.7484 | 131.8140 |   1.0981 |
frame_ctor_dtindex_QuarterBeginx2            |   1.0433 |   0.9487 |   1.0998 |
frame_ctor_dtindex_CustomBusinessDayx2       |   0.9689 |   0.8806 |   1.1003 |
stats_corr_spearman                          |  68.1484 |  61.8983 |   1.1010 |
packers_read_csv                             | 157.6234 | 143.1127 |   1.1014 |
panel_from_dict_two_different_indexes        |  62.8486 |  56.9550 |   1.1035 |
frame_getitem_single_column2                 |  19.1580 |  17.3460 |   1.1045 |
eval_frame_chained_cmp_python_one_thread     |  91.1884 |  82.3380 |   1.1075 |
frame_count_level_axis1_multi                |  86.7036 |  78.2163 |   1.1085 |
frame_apply_user_func                        |  70.7947 |  63.8500 |   1.1088 |
groupby_ngroups_100_size                     |   0.4110 |   0.3699 |   1.1111 |
timeseries_custom_bmonthend_incr_n           |   0.2093 |   0.1884 |   1.1114 |
stats_rank_pct_average                       |  29.2093 |  26.2606 |   1.1123 |
groupby_ngroups_10000_min                    |   1.9766 |   1.7763 |   1.1128 |
frame_ctor_dtindex_MonthBeginx1              |   1.0486 |   0.9410 |   1.1143 |
groupby_multi_count                          |   6.1553 |   5.5184 |   1.1154 |
groupby_ngroups_100_cumprod                  |  11.5967 |  10.3873 |   1.1164 |
groupby_series_simple_cython                 | 167.5251 | 149.9200 |   1.1174 |
sql_read_query_sqlalchemy                    |  32.5234 |  29.1040 |   1.1175 |
index_float64_mul                            |   1.8547 |   1.6540 |   1.1213 |
i8merge                                      | 880.4169 | 784.4897 |   1.1223 |
stat_ops_frame_sum_int_axis_0                |   3.5937 |   3.2016 |   1.1224 |
frame_drop_duplicates_na                     |  12.6983 |  11.3060 |   1.1232 |
timedelta_convert_string                     |  87.5190 |  77.7940 |   1.1250 |
series_loc_scalar                            |   0.0267 |   0.0237 |   1.1275 |
groupby_last_float64                         |   3.5220 |   3.1199 |   1.1289 |
series_drop_duplicates_int                   |   0.6540 |   0.5790 |   1.1294 |
series_ix_list_like                          |   0.1517 |   0.1343 |   1.1296 |
packers_write_stata                          |  20.9417 |  18.5220 |   1.1306 |
timeseries_custom_bday_cal_decr              |   0.0234 |   0.0207 |   1.1308 |
strings_replace                              |  11.4644 |  10.1280 |   1.1319 |
period_setitem                               |  13.2340 |  11.6623 |   1.1348 |
timeseries_custom_bday_incr                  |   0.0140 |   0.0123 |   1.1355 |
frame_to_csv2                                | 110.0953 |  96.9253 |   1.1359 |
groupby_ngroups_100_describe                 | 137.4177 | 120.8344 |   1.1372 |
packers_write_json_mixed_float_int           | 131.6490 | 115.6390 |   1.1384 |
strings_get_dummies                          |  66.3884 |  58.2893 |   1.1389 |
timeseries_custom_bmonthend_incr             |   0.1527 |   0.1340 |   1.1394 |
packers_read_stata_with_validation           |  55.2636 |  48.4761 |   1.1400 |
replace_fillna                               |   0.9890 |   0.8654 |   1.1429 |
dtype_infer_int32                            |   0.4090 |   0.3577 |   1.1433 |
frame_isnull                                 |   0.4657 |   0.4070 |   1.1443 |
join_dataframe_integer_2key                  |   3.3087 |   2.8860 |   1.1465 |
series_align_irregular_string                |  48.6543 |  42.3963 |   1.1476 |
frame_xs_row                                 |   0.0333 |   0.0290 |   1.1479 |
dti_reset_index                              |   0.3053 |   0.2657 |   1.1493 |
append_frame_single_mixed                    |   1.4187 |   1.2324 |   1.1512 |
strings_findall                              |   8.1600 |   7.0873 |   1.1514 |
timeseries_1min_5min_mean                    |   0.6646 |   0.5770 |   1.1519 |
multiindex_duplicated                        |  96.3167 |  83.5230 |   1.1532 |
packers_write_pickle                         | 130.7033 | 113.0910 |   1.1557 |
timeseries_custom_bday_cal_incr              |   0.0216 |   0.0187 |   1.1574 |
panel_from_dict_equiv_indexes                |  39.0920 |  33.7410 |   1.1586 |
frame_insert_500_columns_end                 |  84.1594 |  72.6186 |   1.1589 |
frame_to_csv_date_formatting                 |  11.6611 |  10.0466 |   1.1607 |
frame_iteritems                              |  25.1820 |  21.6257 |   1.1644 |
series_iloc_list_like                        |   0.7620 |   0.6526 |   1.1676 |
strings_repeat                               |   3.8571 |   3.3034 |   1.1676 |
reshape_pivot_time_series                    | 157.2340 | 134.5960 |   1.1682 |
strings_title                                |   7.7453 |   6.6237 |   1.1693 |
timeseries_year_incr                         |   0.0164 |   0.0140 |   1.1705 |
stat_ops_frame_mean_float_axis_1             |   4.6740 |   3.9916 |   1.1709 |
stat_ops_level_series_sum                    |   1.4474 |   1.2354 |   1.1716 |
packers_write_json_mixed_float_int_T         | 107.0007 |  91.1396 |   1.1740 |
stats_rank_pct_average_old                   |  28.4254 |  24.0947 |   1.1797 |
indexing_dataframe_boolean_no_ne             |  85.9000 |  72.7403 |   1.1809 |
strings_join_split                           |  36.1074 |  30.5471 |   1.1820 |
read_parse_dates_iso8601                     |   1.1773 |   0.9950 |   1.1832 |
stats_rank_average_int                       |  19.7994 |  16.6473 |   1.1893 |
series_loc_array                             |   0.9330 |   0.7813 |   1.1942 |
left_outer_join_index                        | 2329.4190 | 1949.8839 |   1.1946 |
groupby_int_count                            |   3.7150 |   3.0710 |   1.2097 |
strings_slice                                |   3.2950 |   2.7227 |   1.2102 |
sparse_frame_constructor                     |   5.0067 |   4.1353 |   1.2107 |
groupby_ngroups_100_cumsum                   |  12.2750 |  10.1330 |   1.2114 |
sparse_series_to_frame                       | 121.3010 |  99.8526 |   1.2148 |
indexing_dataframe_boolean_st                |  90.5453 |  74.4573 |   1.2161 |
groupby_sum_booleans                         |   1.0333 |   0.8493 |   1.2166 |
groupby_first_object                         |  15.8263 |  12.9640 |   1.2208 |
frame_ctor_dtindex_Nanox2                    |   0.9380 |   0.7677 |   1.2218 |
groupby_transform_ufunc                      | 101.8643 |  83.3070 |   1.2228 |
sql_float_read_query_sqlalchemy              |  12.8566 |  10.4984 |   1.2246 |
frame_ctor_dtindex_Microx1                   |   0.9426 |   0.7663 |   1.2301 |
reindex_fillna_backfill_float32              |   0.2473 |   0.2007 |   1.2325 |
frame_ctor_dtindex_Nanox1                    |   0.9500 |   0.7660 |   1.2403 |
sql_datetime_read_and_parse_sqlalchemy       |  18.3130 |  14.7080 |   1.2451 |
timeseries_period_downsample_mean            |  11.1174 |   8.8491 |   1.2563 |
dtype_infer_int64                            |   0.6446 |   0.5107 |   1.2622 |
groupby_last_float32                         |   3.0770 |   2.4350 |   1.2637 |
stat_ops_frame_mean_int_axis_0               |   4.5147 |   3.5590 |   1.2685 |
panel_from_dict_all_different_indexes        | 100.3427 |  78.9137 |   1.2715 |
reindex_multiindex                           |   1.3320 |   1.0437 |   1.2762 |
timeseries_year_apply                        |   0.0153 |   0.0120 |   1.2781 |
series_align_int64_index                     |  34.4250 |  26.7910 |   1.2849 |
strings_pad                                  |   4.4510 |   3.4587 |   1.2869 |
stat_ops_level_series_sum_multiple           |   4.9117 |   3.8057 |   1.2906 |
series_iloc_array                            |   5.0873 |   3.8664 |   1.3158 |
read_csv_infer_datetime_format_ymd           |   2.0707 |   1.5700 |   1.3189 |
dtype_infer_float64                          |   0.6750 |   0.5116 |   1.3192 |
frame_ctor_dtindex_Hourx1                    |   0.9096 |   0.6883 |   1.3216 |
frame_getitem_single_column                  |  19.6416 |  14.7943 |   1.3276 |
frame_ctor_dtindex_Microx2                   |   0.9057 |   0.6807 |   1.3305 |
series_loc_slice                             |   0.0476 |   0.0357 |   1.3341 |
stat_ops_level_frame_sum_multiple            |   6.6206 |   4.9623 |   1.3342 |
frame_ctor_dtindex_Minutex1                  |   0.9073 |   0.6800 |   1.3344 |
index_float64_boolean_series_indexer         |   3.6701 |   2.7480 |   1.3355 |
strings_match                                |   6.0484 |   4.5284 |   1.3357 |
dataframe_resample_min_numpy                 |   1.6863 |   1.2569 |   1.3416 |
eval_frame_chained_cmp_python                |  90.7466 |  66.8840 |   1.3568 |
index_str_boolean_series_indexer             |  10.8276 |   7.8300 |   1.3828 |
frame_ctor_dtindex_Minutex2                  |   0.8980 |   0.6429 |   1.3968 |
packers_write_pack                           |  27.5940 |  19.7157 |   1.3996 |
frame_ctor_dtindex_Dayx1                     |   0.9130 |   0.6493 |   1.4061 |
join_dataframe_index_single_key_bigger_sort  |  12.1287 |   8.5853 |   1.4127 |
frame_ctor_dtindex_Millix1                   |   0.8970 |   0.6333 |   1.4164 |
frame_ctor_dtindex_Millix2                   |   0.9647 |   0.6777 |   1.4236 |
frame_ctor_dtindex_Dayx2                     |   0.9143 |   0.6410 |   1.4264 |
frame_ctor_dtindex_Hourx2                    |   0.9403 |   0.6537 |   1.4385 |
groupby_ngroups_100_median                   |   0.4290 |   0.2973 |   1.4429 |
dataframe_resample_max_string                |   1.7533 |   1.2083 |   1.4511 |
frame_ctor_dtindex_Secondx1                  |   0.9033 |   0.6204 |   1.4561 |
frame_ctor_dtindex_Secondx2                  |   0.9097 |   0.6200 |   1.4674 |
timeseries_custom_bday_cal_incr_n            |   0.0263 |   0.0173 |   1.5183 |
series_getitem_label_slice                   |   0.0650 |   0.0427 |   1.5233 |
series_iloc_slice                            |   0.0410 |   0.0264 |   1.5542 |
indexing_dataframe_boolean                   | 110.2073 |  69.7950 |   1.5790 |
strings_contains_few_noregex                 |   3.1060 |   1.9280 |   1.6110 |
frame_boolean_row_select                     |   0.3196 |   0.1919 |   1.6654 |
frame_xs_mi_ix                               |   4.7997 |   2.8503 |   1.6839 |
datetime_index_union                         |   0.0747 |   0.0406 |   1.8395 |
eval_frame_mult_python_one_thread            |  27.5110 |  14.1670 |   1.9419 |
timeseries_custom_bday_apply_dt64            |   0.0373 |   0.0130 |   2.8598 |
groupby_first_datetimes                      |  24.7090 |   7.6466 |   3.2314 |
groupby_last_datetimes                       |  29.9554 |   9.0907 |   3.2952 |
timeseries_custom_bday_apply                 |   0.0403 |   0.0114 |   3.5455 |
timeseries_day_incr                          |   0.0237 |   0.0060 |   3.9733 |
timeseries_day_apply                         |   0.0267 |   0.0053 |   5.0149 |
-------------------------------------------------------------------------------
Test name                                    | head[ms] | base[ms] |  ratio   |
-------------------------------------------------------------------------------

Ratio < 1.0 means the target commit is faster then the baseline.
Seed used: 1234

Target [f2b54fb] : BUG: Fixes GH9311 groupby on datetime64

datetime64 columns were changing at the nano-second scale when
applying a groupby aggregator.
Base   [5fd1fbd] : Merge pull request #9318 from jorisvandenbossche/doc-api-dt

DOC: delete removed Timedelta properties (see GH9257) from API overview

```

OK, this looks much more reasonable to me.

I'm slightly troubled by the `groupby_first_datetimes` and `groupby_last_datetimes` performance tests -- aren't those the exact operations you tried hard to keep fast here? Can you run those tests again (see the `-r` option to vbench) to verify that they slowed down, and if so, figure out why? Maybe it's `casting='safe'`?

@shoyer Thanks for looking at it so quickly. I'll make the changes suggested, and I'll use a profiler to figure out why `groupby_first_datetimes` and `groupby_last_datetimes` are slower.

@shoyer 

Alright, I found it. Here's the relevant function:

``` python
    def _try_coerce_result(self, result):
        """ reverse of try_coerce_args """
        if isinstance(result, np.ndarray):
            if result.dtype == 'i8':
                result = tslib.array_to_datetime(
                    result.astype(object).ravel()).reshape(result.shape)
            elif result.dtype.kind in ['i', 'f', 'O']:
                result = result.astype('M8[ns]', casting='safe')
        elif isinstance(result, (np.integer, np.datetime64)):
            result = lib.Timestamp(result)
        return result
```

We aren't even hitting the `casting='safe'` section any more because the new Cython functions keep the `datetime64` as an `i8` when it comes into this function. The slow down is from using the line that gets hit in the `if result.dtype == 'i8` condition. Additionally, `casting='safe'` is useless in this `elif` block, because in numpy, none of the dtypes we're looking for can be safely cast to `'M8[ns]'`. Here's the proof:

```
In [5]: np.can_cast(np.int8, 'M8[ns]')
Out[5]: False

In [6]: np.can_cast(np.int16, 'M8[ns]')
Out[6]: False

In [7]: np.can_cast(np.int32, 'M8[ns]')
Out[7]: False

In [8]: np.can_cast(np.int64, 'M8[ns]')
Out[8]: False

In [9]: np.can_cast(np.float32, 'M8[ns]')
Out[9]: False

In [10]: np.can_cast(np.float64, 'M8[ns]')
Out[10]: False

In [11]: np.can_cast('O', 'M8[ns]')
Out[11]: False
```

What's more, this block...

``` python
            if result.dtype == 'i8':
                result = tslib.array_to_datetime(
                    result.astype(object).ravel()).reshape(result.shape)
```

...I don't believe is necessary any more, as I think it was covering for [this error](http://docs.scipy.org/doc/numpy/reference/arrays.datetime.html#unit-conversion) in numpy 1.6. 

I'm going to clean this function up and make sure all the tests are passing and that vbench looks better, and I'll push up my changes.

@iwschris Interesting -- sounds like a good plan to me!

@iwschris The point of that coercion was to handle the cases where a returned input was non-i8. E.g. an op was applied to a datetime64 (say mean in a groubpy) that returned a float / object. So it prob wasn't hit very much (maybe not tested at all).

@shoyer I think I've made all the changes that you requested, and the groupby performance is fixed. Let me know if you see anything else that needs to be changed.

```
-------------------------------------------------------------------------------
Test name                                    | head[ms] | base[ms] |  ratio   |
-------------------------------------------------------------------------------
groupby_ngroups_10000_min                    |   1.5469 |   5.2577 |   0.2942 |
groupby_sum_booleans                         |   0.8443 |   1.9943 |   0.4234 |
groupby_last_float64                         |   2.5679 |   3.8247 |   0.6714 |
groupby_ngroups_100_last                     |   0.2400 |   0.3537 |   0.6787 |
groupby_ngroups_100_count                    |   0.2640 |   0.3820 |   0.6911 |
timeseries_custom_bday_incr                  |   0.0130 |   0.0184 |   0.7056 |
groupby_ngroups_100_min                      |   0.2453 |   0.3393 |   0.7230 |
groupby_ngroups_100_sum                      |   0.3703 |   0.4830 |   0.7667 |
groupby_ngroups_100_first                    |   0.3313 |   0.4270 |   0.7759 |
series_getitem_label_slice                   |   0.0473 |   0.0600 |   0.7881 |
frame_ctor_dtindex_QuarterBeginx2            |   0.9476 |   1.1984 |   0.7908 |
strings_encode_decode                        |   0.2160 |   0.2730 |   0.7913 |
ctor_index_array_string                      |   0.0153 |   0.0191 |   0.8042 |
groupby_ngroups_10000_max                    |   1.6526 |   2.0493 |   0.8064 |
groupby_ngroups_100_max                      |   0.2767 |   0.3427 |   0.8075 |
frame_isnull                                 |   0.4093 |   0.5039 |   0.8122 |
groupby_ngroups_100_std                      |   0.3406 |   0.4177 |   0.8154 |
timeseries_custom_bday_apply                 |   0.0120 |   0.0147 |   0.8162 |
frame_float_equal                            |   1.3760 |   1.6760 |   0.8210 |
timeseries_custom_bday_cal_decr              |   0.0203 |   0.0246 |   0.8258 |
lib_fast_zip                                 |   5.5950 |   6.7647 |   0.8271 |
join_dataframe_index_single_key_bigger_sort  |   8.7024 |  10.5183 |   0.8274 |
timeseries_large_lookup_value                |   0.0130 |   0.0157 |   0.8274 |
panel_shift_minor                            |   0.0633 |   0.0760 |   0.8337 |
packers_read_pack                            |  59.9220 |  70.7163 |   0.8474 |
groupby_ngroups_10000_last                   |   1.6417 |   1.9180 |   0.8559 |
frame_mult_no_ne                             |   4.3187 |   5.0391 |   0.8570 |
groupby_ngroups_10000_first                  |   1.5930 |   1.8583 |   0.8572 |
groupby_ngroups_10000_count                  |   1.4927 |   1.7374 |   0.8592 |
groupby_frame_median                         |   4.8040 |   5.5807 |   0.8608 |
multiindex_from_product                      |   8.4914 |   9.8306 |   0.8638 |
frame_get_numeric_data                       |   0.0933 |   0.1080 |   0.8639 |
strings_len                                  |   1.3150 |   1.5213 |   0.8644 |
series_iloc_list_like                        |   0.6347 |   0.7297 |   0.8697 |
frame_ctor_list_of_dict                      |  56.6440 |  65.0450 |   0.8708 |
frame_ctor_dtindex_CustomBusinessDayx1       |   0.8820 |   1.0053 |   0.8773 |
strings_rstrip                               |   2.9200 |   3.3133 |   0.8813 |
frame_ctor_dtindex_DateOffsetx2              |   0.7687 |   0.8697 |   0.8839 |
frame_ctor_dtindex_BYearEndx1                |   1.0880 |   1.2287 |   0.8855 |
stats_rolling_mean                           |   0.6007 |   0.6773 |   0.8868 |
frame_to_string_floats                       |  20.4317 |  23.0300 |   0.8872 |
join_non_unique_equal                        |   0.3413 |   0.3843 |   0.8881 |
stats_rank_pct_average_old                   |  22.8237 |  25.5847 |   0.8921 |
groupby_ngroups_10000_sum                    |   1.7536 |   1.9600 |   0.8947 |
groupby_frame_singlekey_integer              |   1.5277 |   1.7046 |   0.8962 |
frame_ctor_dtindex_BQuarterEndx2             |   1.0246 |   1.1431 |   0.8964 |
frame_ctor_dtindex_QuarterEndx1              |   1.0207 |   1.1373 |   0.8974 |
strings_cat                                  |   0.4890 |   0.5427 |   0.9010 |
timeseries_infer_freq                        |   6.9396 |   7.6996 |   0.9013 |
frame_ctor_dtindex_BYearBeginx1              |   1.0937 |   1.2107 |   0.9034 |
index_datetime_union                         |   8.8527 |   9.7990 |   0.9034 |
groupby_ngroups_10000_sem                    |   2.1170 |   2.3393 |   0.9050 |
frame_drop_dup_inplace                       |   1.9763 |   2.1823 |   0.9056 |
series_getitem_pos_slice                     |   0.0390 |   0.0430 |   0.9076 |
groupby_agg_builtins1                        |   6.5580 |   7.2230 |   0.9079 |
stat_ops_level_series_sum                    |   1.2880 |   1.4180 |   0.9084 |
frame_dtypes                                 |   0.0746 |   0.0816 |   0.9143 |
groupby_ngroups_100_prod                     |   0.3670 |   0.4013 |   0.9145 |
frame_object_equal                           |   6.3414 |   6.9331 |   0.9147 |
stat_ops_frame_sum_float_axis_0              |   3.6903 |   4.0333 |   0.9150 |
frame_reindex_upcast                         |   5.2267 |   5.7124 |   0.9150 |
groupby_agg_builtins2                        |  29.1350 |  31.6693 |   0.9200 |
stats_rank2d_axis1_average                   |   8.6087 |   9.3507 |   0.9207 |
read_csv_comment2                            |  18.9486 |  20.5363 |   0.9227 |
frame_apply_axis_1                           |  54.8154 |  59.2957 |   0.9244 |
frame_multi_and_st                           |  21.6950 |  23.4100 |   0.9267 |
groupby_int_count                            |   2.8013 |   3.0217 |   0.9271 |
groupby_frame_apply_overhead                 |   6.0896 |   6.5664 |   0.9274 |
frame_assign_timeseries_index                |   0.5557 |   0.5990 |   0.9277 |
series_ix_array                              |   0.5820 |   0.6270 |   0.9281 |
series_ix_scalar                             |   0.0257 |   0.0277 |   0.9282 |
sql_float_read_query_sqlalchemy              |  10.5387 |  11.3459 |   0.9288 |
reshape_stack_simple                         |   1.7470 |   1.8800 |   0.9292 |
stat_ops_frame_sum_int_axis_1                |   3.3751 |   3.6250 |   0.9311 |
dtype_infer_float64                          |   0.5151 |   0.5520 |   0.9331 |
frame_ctor_dtindex_CDayx1                    |   0.8659 |   0.9274 |   0.9338 |
frame_apply_user_func                        |  60.3140 |  64.5920 |   0.9338 |
sql_write_fallback                           |  44.7970 |  47.9503 |   0.9342 |
append_frame_single_mixed                    |   1.2876 |   1.3750 |   0.9365 |
dtype_infer_datetime64                       |   5.9690 |   6.3686 |   0.9372 |
frame_ctor_dtindex_YearEndx2                 |   0.8930 |   0.9514 |   0.9386 |
strings_lstrip                               |   3.1097 |   3.3100 |   0.9395 |
frame_apply_ref_by_name                      |  11.1613 |  11.8767 |   0.9398 |
frame_to_csv_mixed                           | 453.5223 | 482.5880 |   0.9398 |
timeseries_1min_5min_ohlc                    |   0.7473 |   0.7933 |   0.9420 |
timeseries_iter_datetimeindex_preexit        |   9.7930 |  10.3954 |   0.9421 |
groupby_transform_series                     |  14.0743 |  14.9370 |   0.9422 |
packers_write_json_mixed_delta_int_tstamp    | 101.1847 | 107.2090 |   0.9438 |
replace_fillna                               |   0.9017 |   0.9543 |   0.9449 |
groupby_transform_multi_key4                 | 103.9763 | 110.0174 |   0.9451 |
timeseries_custom_bmonthbegin_incr_n         |   0.1686 |   0.1783 |   0.9456 |
sort_level_one                               |   8.4743 |   8.9610 |   0.9457 |
timeseries_timestamp_downsample_mean         |   3.5997 |   3.8053 |   0.9460 |
read_csv_roundtrip_converter                 |   1.8957 |   1.9993 |   0.9482 |
frame_ctor_dtindex_CBMonthBeginx2            |   1.9640 |   2.0713 |   0.9482 |
groupby_multi_count                          |   5.1917 |   5.4657 |   0.9499 |
frame_ctor_dtindex_YearEndx1                 |   0.8907 |   0.9367 |   0.9509 |
groupby_ngroups_100_diff                     |   9.4357 |   9.9177 |   0.9514 |
concat_small_frames                          |  37.0936 |  38.9667 |   0.9519 |
frame_ctor_dtindex_BusinessDayx1             |   0.8607 |   0.9040 |   0.9521 |
timeseries_iter_periodindex_preexit          |   8.7510 |   9.1896 |   0.9523 |
groupby_last_float32                         |   2.6143 |   2.7453 |   0.9523 |
groupby_frame_nth_any                        |   4.4187 |   4.6340 |   0.9535 |
read_csv_infer_datetime_format_ymd           |   1.6460 |   1.7240 |   0.9548 |
index_str_boolean_indexer                    |   6.8233 |   7.1444 |   0.9551 |
groupby_ngroups_10000_any                    | 618.3674 | 647.0981 |   0.9556 |
frame_loc_dups                               |   0.6847 |   0.7164 |   0.9557 |
merge_2intkey_sort                           |  25.3883 |  26.5607 |   0.9559 |
frame_ctor_dtindex_YearBeginx2               |   0.8917 |   0.9326 |   0.9561 |
timeseries_custom_bmonthend_incr_n           |   0.1697 |   0.1773 |   0.9570 |
frame_ctor_dtindex_CDayx2                    |   0.9306 |   0.9717 |   0.9577 |
frame_ctor_dtindex_YearBeginx1               |   0.8793 |   0.9180 |   0.9578 |
sql_string_write_sqlalchemy                  |  56.1903 |  58.6023 |   0.9588 |
groupby_ngroups_100_pct_change               |  28.5260 |  29.7474 |   0.9589 |
packers_write_sql                            | 1715.3694 | 1787.7127 |   0.9595 |
packers_read_stata                           |  38.3670 |  39.9560 |   0.9602 |
stat_ops_frame_mean_float_axis_0             |   3.4750 |   3.6160 |   0.9610 |
frame_mask_bools                             |   6.3006 |   6.5560 |   0.9611 |
series_align_int64_index                     |  25.4393 |  26.4660 |   0.9612 |
frame_interpolate_some_good_infer            |   1.7230 |   1.7917 |   0.9616 |
frame_dropna_axis1_all                       |  48.5770 |  50.4813 |   0.9623 |
timestamp_series_compare                     |   7.1197 |   7.3890 |   0.9635 |
frame_iteritems                              |  23.0230 |  23.8887 |   0.9638 |
read_csv_standard                            |   8.8457 |   9.1743 |   0.9642 |
packers_read_sql                             | 409.3877 | 424.5607 |   0.9643 |
groupby_transform_ufunc                      |  84.5836 |  87.6504 |   0.9650 |
frame_dropna_axis1_any_mixed_dtypes          | 162.9730 | 168.7364 |   0.9658 |
read_csv_infer_datetime_format_iso8601       |   1.3950 |   1.4440 |   0.9660 |
frame_ctor_dtindex_Weekx2                    |   0.7820 |   0.8094 |   0.9662 |
frame_ctor_dtindex_CBMonthEndx2              |   2.8203 |   2.9186 |   0.9663 |
frame_repr_wide                              |   9.3870 |   9.7136 |   0.9664 |
groupby_nth_object_any                       | 841.0040 | 870.1773 |   0.9665 |
groupby_series_simple_cython                 | 154.3627 | 159.7143 |   0.9665 |
frame_ctor_dtindex_CustomBusinessDayx2       |   0.8903 |   0.9207 |   0.9670 |
frame_ctor_dtindex_QuarterBeginx1            |   0.9417 |   0.9737 |   0.9671 |
groupby_ngroups_10000_cumcount               |  57.0690 |  59.0070 |   0.9672 |
reindex_frame_level_reindex                  |   0.5724 |   0.5913 |   0.9680 |
stat_ops_frame_sum_int_axis_0                |   3.2736 |   3.3800 |   0.9685 |
groupby_ngroups_10000_head                   |  60.0090 |  61.9076 |   0.9693 |
join_dataframe_index_single_key_bigger       |   9.4264 |   9.7221 |   0.9696 |
frame_ctor_dtindex_BMonthBeginx2             |   1.0860 |   1.1200 |   0.9696 |
panel_from_dict_all_different_indexes        |  79.1587 |  81.6304 |   0.9697 |
dtype_infer_uint32                           |   0.2950 |   0.3041 |   0.9702 |
index_datetime_intersection                  |   8.1367 |   8.3837 |   0.9705 |
groupby_ngroups_100_nunique                  |   7.2393 |   7.4557 |   0.9710 |
read_csv_precise_converter                   |   1.2057 |   1.2414 |   0.9713 |
groupby_ngroups_100_cumcount                 |   0.5197 |   0.5350 |   0.9713 |
packers_write_json_T                         |  78.7703 |  81.0614 |   0.9717 |
timeseries_is_month_start                    |   2.3923 |   2.4610 |   0.9721 |
frame_to_html_mixed                          | 161.7943 | 166.4189 |   0.9722 |
sql_write_sqlalchemy                         | 117.4723 | 120.8177 |   0.9723 |
frame_from_records_generator                 |  45.9894 |  47.2843 |   0.9726 |
packers_write_json_mixed_float_int_str       |  91.7734 |  94.3254 |   0.9729 |
dtype_infer_int64                            |   0.5347 |   0.5493 |   0.9734 |
frame_ctor_dtindex_BMonthEndx1               |   0.9663 |   0.9924 |   0.9737 |
frame_ctor_dtindex_BYearEndx2                |   1.0830 |   1.1120 |   0.9739 |
append_frame_single_homogenous               |   0.8657 |   0.8887 |   0.9742 |
frame_ctor_nested_dict                       |  56.6264 |  58.1160 |   0.9744 |
frame_constructor_ndarray                    |   0.0650 |   0.0667 |   0.9750 |
frame_multi_and                              |  20.7267 |  21.2576 |   0.9750 |
groupby_ngroups_10000_tail                   |  59.2899 |  60.8070 |   0.9751 |
sql_float_write_fallback                     |  24.1543 |  24.7684 |   0.9752 |
frame_sort_index_by_columns                  |  26.4277 |  27.0927 |   0.9755 |
indexing_dataframe_boolean_st                |  70.6747 |  72.4257 |   0.9758 |
groupby_ngroups_10000_mad                    | 3299.6900 | 3380.4110 |   0.9761 |
groupby_ngroups_10000_median                 |   2.2411 |   2.2950 |   0.9765 |
packers_read_csv                             | 141.6870 | 145.0460 |   0.9768 |
frame_ctor_dtindex_DateOffsetx1              |   0.7790 |   0.7970 |   0.9774 |
frame_ctor_dtindex_QuarterEndx2              |   1.0367 |   1.0606 |   0.9774 |
frame_count_level_axis1_multi                |  81.5767 |  83.4474 |   0.9776 |
join_dataframe_index_single_key_small        |   7.1117 |   7.2730 |   0.9778 |
sql_string_write_fallback                    |  22.1174 |  22.6150 |   0.9780 |
panel_from_dict_two_different_indexes        |  54.9030 |  56.1057 |   0.9786 |
read_table_multiple_date_baseline            |  64.1260 |  65.4617 |   0.9796 |
sql_read_query_fallback                      |  25.6484 |  26.1800 |   0.9797 |
frame_ctor_dtindex_Easterx2                  |   0.9224 |   0.9410 |   0.9802 |
groupby_ngroups_100_any                      |   6.5540 |   6.6827 |   0.9807 |
frame_insert_500_columns_end                 |  70.6807 |  71.9883 |   0.9818 |
timeseries_custom_bday_cal_incr              |   0.0173 |   0.0176 |   0.9820 |
frame_shift_axis_1                           |  13.5214 |  13.7667 |   0.9822 |
stats_rank_average                           |  26.5337 |  26.9966 |   0.9829 |
frame_ctor_dtindex_BQuarterEndx1             |   1.0410 |   1.0587 |   0.9833 |
groupby_ngroups_100_all                      |   6.6433 |   6.7540 |   0.9836 |
frame_ctor_dtindex_BQuarterBeginx1           |   1.1027 |   1.1207 |   0.9839 |
join_dataframe_index_multi                   |  13.0811 |  13.2937 |   0.9840 |
groupby_ngroups_100_mad                      |  33.7967 |  34.3277 |   0.9845 |
dataframe_resample_min_string                |   1.2743 |   1.2943 |   0.9846 |
frame_apply_pass_thru                        |   3.2907 |   3.3420 |   0.9846 |
groupby_ngroups_100_value_counts             |  38.3800 |  38.9744 |   0.9847 |
frame_add_no_ne                              |   4.2443 |   4.3093 |   0.9849 |
frame_repr_tall                              |  16.1064 |  16.3527 |   0.9849 |
groupby_ngroups_10000_describe               | 12246.0036 | 12428.1040 |   0.9853 |
frame_fancy_lookup                           |   2.6093 |   2.6480 |   0.9854 |
groupby_ngroups_100_skew                     |   9.5414 |   9.6787 |   0.9858 |
frame_interpolate                            |  62.7383 |  63.6377 |   0.9859 |
groupby_transform_multi_key3                 | 549.7010 | 557.4584 |   0.9861 |
index_int64_union                            |  54.6637 |  55.4299 |   0.9862 |
groupby_ngroups_100_unique                   |   5.1790 |   5.2497 |   0.9865 |
groupby_ngroups_100_head                     |   0.5594 |   0.5670 |   0.9867 |
groupby_multi_series_op                      |  10.8340 |  10.9777 |   0.9869 |
concat_empty_frames2                         |   0.6906 |   0.6997 |   0.9871 |
timeseries_iter_periodindex                  | 933.1970 | 945.3110 |   0.9872 |
packers_write_pickle                         | 110.9703 | 112.3710 |   0.9875 |
groupby_ngroups_10000_unique                 | 461.1970 | 466.8473 |   0.9879 |
sql_float_read_table_sqlalchemy              |  11.7003 |  11.8350 |   0.9886 |
groupby_frame_nth_none                       |   1.6277 |   1.6464 |   0.9887 |
groupby_frame_apply                          |  28.3460 |  28.6610 |   0.9890 |
groupby_indices                              |   4.0007 |   4.0447 |   0.9891 |
frame_ctor_dtindex_BMonthBeginx1             |   1.1130 |   1.1247 |   0.9896 |
groupby_ngroups_10000_nunique                | 674.0251 | 680.9433 |   0.9898 |
packers_read_json                            | 149.1297 | 150.5876 |   0.9903 |
groupby_nth_float32_none                     |  67.9397 |  68.5944 |   0.9905 |
packers_read_json_date_index                 | 142.3817 | 143.7430 |   0.9905 |
frame_to_csv_date_formatting                 |  10.2447 |  10.3420 |   0.9906 |
groupby_ngroups_100_tail                     |   0.5616 |   0.5670 |   0.9906 |
packers_write_stata_with_validation          |  32.9190 |  33.2303 |   0.9906 |
frame_multi_and_no_ne                        |  20.6763 |  20.8713 |   0.9907 |
reindex_multiindex                           |   1.1547 |   1.1640 |   0.9919 |
write_csv_standard                           |  34.9120 |  35.1867 |   0.9922 |
unstack_sparse_keyspace                      |   0.9427 |   0.9500 |   0.9923 |
groupby_ngroups_10000_cumsum                 | 984.3817 | 991.8603 |   0.9925 |
packers_write_json_mixed_float_int           | 113.1330 | 113.9567 |   0.9928 |
groupby_ngroups_100_var                      |   0.2840 |   0.2860 |   0.9931 |
concat_series_axis1                          |  63.0647 |  63.4943 |   0.9932 |
read_csv_skiprows                            |  10.3000 |  10.3680 |   0.9934 |
frame_ctor_dtindex_BMonthEndx2               |   0.9557 |   0.9616 |   0.9938 |
series_constructor_ndarray                   |   0.0133 |   0.0134 |   0.9940 |
groupby_ngroups_10000_prod                   |   1.8090 |   1.8197 |   0.9941 |
series_loc_array                             |   0.7993 |   0.8030 |   0.9954 |
groupby_ngroups_10000_skew                   | 905.1560 | 909.1300 |   0.9956 |
indexing_dataframe_boolean_rows_object       |   0.3900 |   0.3916 |   0.9957 |
groupby_pivot_table                          |  12.0370 |  12.0880 |   0.9958 |
groupby_dt_size                              |  19.5410 |  19.6196 |   0.9960 |
groupby_ngroups_10000_std                    |   1.7703 |   1.7760 |   0.9968 |
groupby_ngroups_10000_cummin                 | 974.1340 | 977.1133 |   0.9970 |
indexing_panel_subset                        |   0.6197 |   0.6214 |   0.9973 |
indexing_dataframe_boolean_no_ne             |  71.6184 |  71.7976 |   0.9975 |
frame_ctor_dtindex_MonthBeginx2              |   0.9747 |   0.9760 |   0.9986 |
merge_2intkey_nosort                         |  10.0303 |  10.0436 |   0.9987 |
frame_dropna_axis0_all_mixed_dtypes          | 195.5467 | 195.6876 |   0.9993 |
strings_findall                              |   7.3016 |   7.3054 |   0.9995 |
groupby_ngroups_10000_cumprod                | 1006.3633 | 1005.3970 |   1.0010 |
indexing_dataframe_boolean                   |  74.2187 |  74.0976 |   1.0016 |
read_table_multiple_date                     | 140.5107 | 140.2653 |   1.0017 |
groupby_ngroups_10000_value_counts           | 3830.4947 | 3822.3906 |   1.0021 |
frame_interpolate_some_good                  |   0.9533 |   0.9507 |   1.0028 |
groupby_ngroups_100_cumsum                   |  10.4314 |  10.4013 |   1.0029 |
groupby_nth_datetimes_any                    | 880.7180 | 877.7663 |   1.0034 |
frame_html_repr_trunc_si                     |  21.1756 |  21.0973 |   1.0037 |
frame_to_csv2                                | 100.9137 | 100.5360 |   1.0038 |
read_csv_thou_vb                             |  15.2850 |  15.2257 |   1.0039 |
groupby_ngroups_10000_size                   |   3.2900 |   3.2753 |   1.0045 |
groupby_ngroups_10000_diff                   | 888.7037 | 884.5407 |   1.0047 |
groupby_nth_float64_none                     |  68.4210 |  68.0726 |   1.0051 |
join_dataframe_integer_2key                  |   2.9706 |   2.9553 |   1.0052 |
groupby_ngroups_10000_rank                   | 1000.9840 | 995.8084 |   1.0052 |
frame_to_csv                                 | 110.6560 | 110.0527 |   1.0055 |
packers_write_stata                          |  18.9424 |  18.8380 |   1.0055 |
timedelta_convert_string_seconds             |  95.1807 |  94.6437 |   1.0057 |
read_csv_infer_datetime_format_custom        |   7.7757 |   7.7300 |   1.0059 |
series_getitem_list_like                     |   0.1370 |   0.1361 |   1.0070 |
series_value_counts_int64                    |   1.5770 |   1.5657 |   1.0072 |
index_float64_boolean_series_indexer         |   2.8377 |   2.8164 |   1.0076 |
match_strings                                |   0.3020 |   0.2997 |   1.0077 |
groupby_nth_datetimes_none                   | 409.9120 | 406.6207 |   1.0081 |
timeseries_slice_minutely                    |   0.0380 |   0.0377 |   1.0084 |
frame_ctor_dtindex_BYearBeginx2              |   1.1230 |   1.1127 |   1.0092 |
panel_shift                                  |   0.0690 |   0.0683 |   1.0093 |
dtype_infer_timedelta64_1                    |  46.2670 |  45.8287 |   1.0096 |
packers_read_pickle                          | 104.7180 | 103.6840 |   1.0100 |
frame_ctor_dtindex_MonthEndx1                |   1.0337 |   1.0233 |   1.0102 |
datetimeindex_unique                         |   0.0703 |   0.0696 |   1.0103 |
concat_empty_frames1                         |   0.7217 |   0.7143 |   1.0103 |
frame_ctor_dtindex_CBMonthEndx1              |   3.0483 |   3.0167 |   1.0105 |
index_float64_boolean_indexer                |   3.1544 |   3.1207 |   1.0108 |
frame_apply_np_mean                          |   4.3801 |   4.3330 |   1.0109 |
frame_ctor_dtindex_Weekx1                    |   0.8373 |   0.8279 |   1.0113 |
groupby_dt_timegrouper_size                  |  15.3086 |  15.1347 |   1.0115 |
timeseries_add_irregular                     |  10.6150 |  10.4937 |   1.0116 |
i8merge                                      | 720.6446 | 712.3937 |   1.0116 |
groupby_multi_different_functions            |   8.5303 |   8.4217 |   1.0129 |
join_dataframe_integer_key                   |   1.1760 |   1.1609 |   1.0129 |
groupby_ngroups_10000_pct_change             | 2864.5146 | 2827.7680 |   1.0130 |
sql_read_query_sqlalchemy                    |  31.0357 |  30.6307 |   1.0132 |
datetimeindex_infer_dst                      |   2.7916 |   2.7550 |   1.0133 |
packers_write_json_date_index                |  82.8060 |  81.6610 |   1.0140 |
groupby_ngroups_10000_cummax                 | 985.5483 | 971.8640 |   1.0141 |
dataframe_resample_max_numpy                 |   1.2633 |   1.2457 |   1.0142 |
series_iloc_array                            |   3.7663 |   3.7130 |   1.0144 |
packers_write_csv                            | 1003.9383 | 989.6457 |   1.0144 |
groupby_multi_cython                         |  11.7397 |  11.5686 |   1.0148 |
frame_ctor_dtindex_MonthBeginx1              |   1.0053 |   0.9906 |   1.0148 |
sql_read_table_sqlalchemy                    |  32.4130 |  31.9293 |   1.0151 |
frame_from_records_generator_nrows           |   0.6596 |   0.6497 |   1.0153 |
groupby_apply_dict_return                    |  25.2407 |  24.8563 |   1.0155 |
groupby_ngroups_10000_all                    | 647.5980 | 637.4997 |   1.0158 |
sql_datetime_read_and_parse_sqlalchemy       |  15.9250 |  15.6693 |   1.0163 |
sql_datetime_write_sqlalchemy                |  98.1317 |  96.5020 |   1.0169 |
timestamp_ops_diff1                          |  11.9913 |  11.7904 |   1.0170 |
timeseries_sort_index                        |   6.5977 |   6.4860 |   1.0172 |
timeseries_custom_bday_decr                  |   0.0187 |   0.0184 |   1.0173 |
frame_iloc_big                               |   0.1130 |   0.1110 |   1.0179 |
groupby_transform_multi_key2                 |  35.8504 |  35.2017 |   1.0184 |
frame_reindex_columns                        |   0.2327 |   0.2283 |   1.0191 |
panel_from_dict_equiv_indexes                |  34.5407 |  33.8720 |   1.0197 |
frame_fillna_inplace                         |   7.4177 |   7.2730 |   1.0199 |
timeseries_asof                              |   6.0943 |   5.9700 |   1.0208 |
frame_ctor_dtindex_BusinessDayx2             |   0.8917 |   0.8730 |   1.0214 |
series_iloc_list_like                        |   0.1917 |   0.1876 |   1.0216 |
groupby_transform_multi_key1                 |  53.9067 |  52.6876 |   1.0231 |
series_ix_slice                              |   0.0420 |   0.0410 |   1.0233 |
series_iloc_slice                            |   0.0273 |   0.0267 |   1.0238 |
groupby_nth_object_none                      | 463.5770 | 452.6064 |   1.0242 |
frame_insert_100_columns_begin               |  27.4473 |  26.7963 |   1.0243 |
datetimeindex_add_offset                     |   0.1976 |   0.1930 |   1.0243 |
panel_from_dict_same_index                   |  31.6453 |  30.8727 |   1.0250 |
indexing_dataframe_boolean_rows              |   0.2327 |   0.2270 |   1.0252 |
packers_write_json_mixed_float_int_T         |  91.8790 |  89.5476 |   1.0260 |
groupby_ngroups_100_cummax                   |  10.5499 |  10.2807 |   1.0262 |
packers_read_stata_with_validation           |  51.2207 |  49.9026 |   1.0264 |
groupby_transform                            | 112.1066 | 109.1996 |   1.0266 |
frame_iloc_dups                              |   0.1780 |   0.1733 |   1.0271 |
strings_extract                              |  31.9397 |  31.0920 |   1.0273 |
datetimeindex_normalize                      |   2.7603 |   2.6847 |   1.0282 |
groupby_ngroups_100_describe                 | 125.1437 | 121.6557 |   1.0287 |
groupby_transform_series2                    | 104.7140 | 101.7720 |   1.0289 |
series_loc_slice                             |   0.0367 |   0.0357 |   1.0290 |
sort_level_zero                              |   9.0830 |   8.8254 |   1.0292 |
sparse_frame_constructor                     |   4.7417 |   4.6070 |   1.0292 |
groupby_multi_python                         |  68.0457 |  66.1100 |   1.0293 |
dtype_infer_timedelta64_2                    |   8.2953 |   8.0550 |   1.0298 |
frame_dropna_axis0_all                       |  44.7303 |  43.4287 |   1.0300 |
frame_fillna_many_columns_pad                |   3.7503 |   3.6367 |   1.0312 |
sql_datetime_read_as_native_sqlalchemy       |  19.4684 |  18.8247 |   1.0342 |
stats_rank2d_axis0_average                   |  18.8180 |  18.1866 |   1.0347 |
groupby_multi_size                           |  17.8340 |  17.2260 |   1.0353 |
timeseries_period_downsample_mean            |   9.2657 |   8.9467 |   1.0357 |
series_string_vector_slice                   | 173.7893 | 167.6916 |   1.0364 |
frame_xs_mi_ix                               |   2.9590 |   2.8547 |   1.0366 |
groupby_last_object                          |  12.2123 |  11.7773 |   1.0369 |
groupby_multi_different_numpy_functions      |   8.2763 |   7.9813 |   1.0370 |
frame_ctor_nested_dict_int64                 |  60.5243 |  58.3340 |   1.0375 |
frame_count_level_axis0_mixed_dtypes_multi   |  97.7780 |  94.2357 |   1.0376 |
packers_write_pack                           |  19.9939 |  19.2277 |   1.0399 |
frame_dropna_axis0_any_mixed_dtypes          | 169.2970 | 162.7607 |   1.0402 |
sql_float_write_sqlalchemy                   |  58.9753 |  56.5923 |   1.0421 |
frame_ctor_dtindex_MonthEndx2                |   1.0544 |   1.0117 |   1.0422 |
read_csv_vb                                  |  17.0786 |  16.3754 |   1.0429 |
index_from_series_ctor                       |   0.0153 |   0.0147 |   1.0432 |
timestamp_ops_diff2                          |  15.6870 |  15.0247 |   1.0441 |
index_float64_div                            |   2.0523 |   1.9654 |   1.0442 |
strings_upper                                |   4.1310 |   3.9513 |   1.0455 |
series_getitem_array                         |   0.3340 |   0.3193 |   1.0460 |
frame_get_dtype_counts                       |   0.0753 |   0.0720 |   1.0464 |
frame_add_st                                 |   4.3233 |   4.1310 |   1.0466 |
frame_iteritems_cached                       |   0.4187 |   0.4000 |   1.0467 |
frame_dropna_axis1_all_mixed_dtypes          | 198.1947 | 189.3433 |   1.0467 |
replace_replacena                            |   0.5724 |   0.5467 |   1.0470 |
groupby_series_nth_any                       |   3.0830 |   2.9440 |   1.0472 |
frame_ctor_dtindex_BQuarterBeginx2           |   1.1653 |   1.1127 |   1.0473 |
series_timestamp_compare                     |   7.7960 |   7.4350 |   1.0486 |
timeseries_year_incr                         |   0.0137 |   0.0130 |   1.0488 |
multiindex_duplicated                        |  72.3007 |  68.9166 |   1.0491 |
series_ctor_from_dict                        |   2.1830 |   2.0804 |   1.0494 |
frame_add                                    |   4.3570 |   4.1513 |   1.0496 |
packers_write_json                           |  72.8660 |  69.4064 |   1.0498 |
stats_corr_spearman                          |  62.3976 |  59.3921 |   1.0506 |
frame_mask_floats                            |   4.8656 |   4.6277 |   1.0514 |
series_getitem_slice                         |   0.0340 |   0.0323 |   1.0516 |
reindex_frame_level_align                    |   0.6653 |   0.6324 |   1.0522 |
dti_reset_index_tz                           |   5.1360 |   4.8790 |   1.0527 |
frame_count_level_axis0_multi                |  56.1733 |  53.2593 |   1.0547 |
frame_count_level_axis1_mixed_dtypes_multi   |  82.4430 |  78.1200 |   1.0553 |
frame_apply_lambda_mean                      |   4.2817 |   4.0547 |   1.0560 |
series_value_counts_strings                  |   3.3906 |   3.2097 |   1.0564 |
reindex_fillna_pad                           |   0.2097 |   0.1984 |   1.0573 |
multiindex_with_datetime_level_sliced        |   0.1456 |   0.1376 |   1.0577 |
frame_fancy_lookup_all                       |  11.7574 |  11.1150 |   1.0578 |
groupby_ngroups_100_mean                     |   0.3027 |   0.2860 |   1.0583 |
frame_reindex_both_axes                      |  26.8474 |  25.3650 |   1.0584 |
stat_ops_level_frame_sum                     |   2.2500 |   2.1253 |   1.0587 |
sparse_series_to_frame                       | 107.4290 | 101.4590 |   1.0588 |
stats_rank_average_int                       |  16.8833 |  15.9390 |   1.0592 |
strings_slice                                |   2.6677 |   2.5171 |   1.0598 |
groupby_ngroups_10000_var                    |   1.8106 |   1.7076 |   1.0603 |
lib_fast_zip_fillna                          |   9.0830 |   8.5564 |   1.0615 |
datetime_index_intersection                  |   0.2783 |   0.2619 |   1.0625 |
frame_shift_axis0                            |   9.1840 |   8.6240 |   1.0649 |
left_outer_join_index                        | 1958.5741 | 1838.4383 |   1.0653 |
frame_mult                                   |   4.3027 |   4.0330 |   1.0669 |
stat_ops_frame_sum_float_axis_1              |   3.7750 |   3.5384 |   1.0669 |
dataframe_resample_max_string                |   1.3510 |   1.2660 |   1.0671 |
dtype_infer_float32                          |   0.2833 |   0.2650 |   1.0690 |
multiindex_with_datetime_level_full          |   9.4407 |   8.8236 |   1.0699 |
read_csv_default_converter                   |   1.3023 |   1.2157 |   1.0713 |
frame_ctor_dtindex_CBMonthBeginx1            |   2.4673 |   2.3030 |   1.0713 |
strings_get_dummies                          |  61.4343 |  57.3040 |   1.0721 |
timeseries_asof_single                       |   0.0200 |   0.0187 |   1.0723 |
index_float64_mul                            |   1.7130 |   1.5964 |   1.0730 |
groupby_first_datetimes                      |   8.2930 |   7.7260 |   1.0734 |
strings_contains_many                        |   4.5480 |   4.2363 |   1.0736 |
timeseries_custom_bmonthend_decr_n           |   0.2187 |   0.2037 |   1.0737 |
groupby_ngroups_100_cummin                   |  11.2159 |  10.4174 |   1.0767 |
dtype_infer_int32                            |   0.3340 |   0.3096 |   1.0788 |
frame_reindex_both_axes_ix                   |  27.2507 |  25.2467 |   1.0794 |
timeseries_asof_nan                          |   6.2610 |   5.7926 |   1.0809 |
frame_boolean_row_select                     |   0.1911 |   0.1764 |   1.0834 |
frame_xs_row                                 |   0.0340 |   0.0314 |   1.0835 |
dti_reset_index                              |   0.2817 |   0.2600 |   1.0838 |
index_str_boolean_series_indexer             |   7.3417 |   6.7723 |   1.0841 |
frame_html_repr_trunc_mi                     |  28.9357 |  26.6747 |   1.0848 |
frame_dropna_axis1_any                       |  22.3397 |  20.5860 |   1.0852 |
timedelta_convert_int                        |   0.1473 |   0.1357 |   1.0855 |
strings_get                                  |   2.4973 |   2.2997 |   1.0859 |
dataframe_resample_min_numpy                 |   1.3397 |   1.2310 |   1.0883 |
groupby_ngroups_100_sem                      |   0.6450 |   0.5920 |   1.0895 |
frame_ctor_dtindex_BDayx1                    |   0.9620 |   0.8800 |   1.0932 |
groupby_ngroups_100_cumprod                  |  11.2923 |  10.3190 |   1.0943 |
groupby_ngroups_100_rank                     |  11.4003 |  10.4090 |   1.0952 |
groupby_series_nth_none                      |   1.0317 |   0.9410 |   1.0964 |
reshape_unstack_simple                       |   2.2987 |   2.0934 |   1.0981 |
frame_nonunique_equal                        |   6.9814 |   6.3510 |   1.0993 |
timeseries_custom_bmonthbegin_decr_n         |   0.2036 |   0.1850 |   1.1005 |
timedelta_convert_string                     |  85.9096 |  77.9746 |   1.1018 |
dataframe_reindex                            |   0.2877 |   0.2600 |   1.1064 |
read_parse_dates_iso8601                     |   1.1477 |   1.0373 |   1.1064 |
strings_startswith                           |   3.5671 |   3.2183 |   1.1084 |
frame_dropna_axis0_any                       |  20.2320 |  18.2254 |   1.1101 |
groupby_last_datetimes                       |   9.5867 |   8.6323 |   1.1106 |
strings_pad                                  |   3.7787 |   3.4003 |   1.1113 |
reshape_pivot_time_series                    | 158.3740 | 142.4467 |   1.1118 |
groupby_first_float32                        |   2.5520 |   2.2953 |   1.1118 |
frame_reindex_axis0                          | 127.2593 | 114.4087 |   1.1123 |
groupby_first_object                         |  13.5334 |  12.1613 |   1.1128 |
strings_contains_few_noregex                 |   2.0107 |   1.8013 |   1.1162 |
frame_ctor_dtindex_BDayx2                    |   0.9876 |   0.8833 |   1.1180 |
reindex_daterange_backfill                   |   0.6371 |   0.5693 |   1.1191 |
frame_mult_st                                |   4.5083 |   4.0273 |   1.1194 |
frame_reindex_axis1                          | 140.4219 | 125.4377 |   1.1195 |
series_align_left_monotonic                  |  12.9440 |  11.5560 |   1.1201 |
timeseries_with_format_replace               | 866.1647 | 773.0780 |   1.1204 |
groupby_first_float64                        |   2.4977 |   2.2247 |   1.1227 |
strings_join_split                           |  32.9763 |  29.3543 |   1.1234 |
reindex_daterange_pad                        |   0.6580 |   0.5853 |   1.1241 |
panel_pct_change_minor                       | 5224.9401 | 4645.2710 |   1.1248 |
melt_dataframe                               |   1.6213 |   1.4410 |   1.1251 |
sql_float_read_query_fallback                |   7.2750 |   6.4550 |   1.1270 |
panel_pct_change_major                       | 5403.9280 | 4793.4217 |   1.1274 |
timeseries_custom_bday_apply_dt64            |   0.0147 |   0.0130 |   1.1280 |
replace_large_dict                           | 10675.8167 | 9450.3539 |   1.1297 |
timeseries_custom_bday_cal_incr_neg_n        |   0.0223 |   0.0197 |   1.1331 |
strings_replace                              |  10.5780 |   9.3296 |   1.1338 |
reindex_fillna_backfill_float32              |   0.2016 |   0.1777 |   1.1346 |
timeseries_iter_datetimeindex                | 622.4996 | 547.2793 |   1.1374 |
timeseries_1min_5min_mean                    |   0.5967 |   0.5233 |   1.1402 |
strings_match                                |   5.1533 |   4.5079 |   1.1432 |
frame_ctor_dtindex_Easterx1                  |   1.1130 |   0.9677 |   1.1502 |
panel_pct_change_items                       | 6445.6920 | 5591.4750 |   1.1528 |
strings_strip                                |   3.6773 |   3.1867 |   1.1539 |
reindex_fillna_pad_float32                   |   0.1946 |   0.1686 |   1.1541 |
strings_count                                |   5.3434 |   4.6194 |   1.1567 |
stats_rank_pct_average                       |  27.8743 |  24.0750 |   1.1578 |
strings_endswith                             |   3.9223 |   3.3873 |   1.1579 |
groupby_simple_compress_timing               |  26.6636 |  23.0000 |   1.1593 |
frame_ctor_dtindex_Nanox2                    |   0.8893 |   0.7670 |   1.1595 |
dataframe_resample_mean_string               |   2.6357 |   2.2704 |   1.1609 |
frame_ctor_dtindex_Nanox1                    |   0.8897 |   0.7663 |   1.1611 |
series_drop_duplicates_int                   |   0.5940 |   0.5113 |   1.1616 |
index_int64_intersection                     |  12.9977 |  11.1706 |   1.1636 |
eval_frame_and_python                        |  23.6270 |  20.2813 |   1.1650 |
series_ix_list_like                          |   0.1756 |   0.1504 |   1.1681 |
stat_ops_frame_mean_int_axis_1               |   4.0643 |   3.4726 |   1.1704 |
series_loc_scalar                            |   0.0287 |   0.0244 |   1.1759 |
dataframe_resample_mean_numpy                |   2.6941 |   2.2857 |   1.1786 |
groupby_ngroups_10000_mean                   |   1.8930 |   1.6026 |   1.1812 |
groupby_ngroups_100_size                     |   0.4670 |   0.3940 |   1.1852 |
stat_ops_frame_mean_float_axis_1             |   4.4107 |   3.7157 |   1.1870 |
timeseries_with_format_no_exact              | 684.8796 | 576.9157 |   1.1871 |
eval_frame_and_python_one_thread             |  26.4336 |  22.2460 |   1.1882 |
strings_lower                                |   5.7950 |   4.8597 |   1.1925 |
frame_getitem_single_column2                 |  18.0566 |  15.0937 |   1.1963 |
frame_drop_dup_na_inplace                    |   2.1360 |   1.7837 |   1.1975 |
eval_frame_chained_cmp_python                |  85.1634 |  70.6440 |   1.2055 |
groupby_frame_cython_many_columns            |   2.4427 |   2.0219 |   1.2081 |
frame_drop_duplicates_na                     |  13.9780 |  11.5484 |   1.2104 |
frame_from_series                            |   0.1056 |   0.0867 |   1.2181 |
eval_frame_chained_cmp_python_one_thread     |  84.2403 |  69.1067 |   1.2190 |
timeseries_year_apply                        |   0.0150 |   0.0123 |   1.2194 |
strings_contains_many_noregex                |   2.2680 |   1.8577 |   1.2209 |
reindex_fillna_backfill                      |   0.2894 |   0.2367 |   1.2226 |
stat_ops_level_series_sum_multiple           |   4.5056 |   3.6640 |   1.2297 |
frame_getitem_single_column                  |  18.9524 |  15.3863 |   1.2318 |
period_setitem                               |  13.8947 |  11.2560 |   1.2344 |
series_drop_duplicates_string                |   0.3883 |   0.3137 |   1.2379 |
timeseries_custom_bmonthend_incr             |   0.1633 |   0.1317 |   1.2402 |
series_xs_mi_ix                              |   3.4720 |   2.7987 |   1.2406 |
strings_repeat                               |   4.3751 |   3.4980 |   1.2507 |
stat_ops_frame_mean_int_axis_0               |   3.9840 |   3.1723 |   1.2559 |
timeseries_to_datetime_YYYYMMDD              |   7.9957 |   6.3577 |   1.2576 |
strings_contains_few                         |   5.2613 |   4.1347 |   1.2725 |
series_align_irregular_string                |  57.3673 |  43.9700 |   1.3047 |
eval_frame_mult_python_one_thread            |  19.6740 |  15.0317 |   1.3088 |
frame_drop_duplicates                        |  16.5133 |  12.5810 |   1.3126 |
groupby_ngroups_100_median                   |   0.4000 |   0.3046 |   1.3131 |
frame_ctor_dtindex_Microx1                   |   0.9040 |   0.6807 |   1.3281 |
timeseries_to_datetime_iso8601               |   4.1126 |   3.0954 |   1.3286 |
stat_ops_series_std                          |   0.5300 |   0.3893 |   1.3613 |
eval_frame_mult_python                       |  19.7923 |  14.4924 |   1.3657 |
frame_ctor_dtindex_Hourx2                    |   0.8984 |   0.6480 |   1.3863 |
frame_ctor_dtindex_Minutex2                  |   0.9057 |   0.6497 |   1.3940 |
frame_ctor_dtindex_Secondx2                  |   0.8967 |   0.6353 |   1.4114 |
eval_frame_add_python_one_thread             |  21.4110 |  15.1430 |   1.4139 |
frame_ctor_dtindex_Millix2                   |   0.9303 |   0.6540 |   1.4225 |
frame_ctor_dtindex_Microx2                   |   0.9127 |   0.6400 |   1.4261 |
frame_ctor_dtindex_Millix1                   |   0.9327 |   0.6527 |   1.4290 |
frame_ctor_dtindex_Hourx1                    |   0.9070 |   0.6347 |   1.4291 |
frame_ctor_dtindex_Minutex1                  |   0.9290 |   0.6440 |   1.4424 |
frame_ctor_dtindex_Dayx1                     |   0.9227 |   0.6380 |   1.4462 |
eval_frame_add_python                        |  21.3433 |  14.5017 |   1.4718 |
frame_ctor_dtindex_Secondx1                  |   0.9493 |   0.6427 |   1.4771 |
stat_ops_level_frame_sum_multiple            |   7.5233 |   5.0783 |   1.4815 |
strings_title                                |   9.7333 |   6.5623 |   1.4832 |
frame_ctor_dtindex_Dayx2                     |   0.9576 |   0.6317 |   1.5161 |
timeseries_custom_bday_cal_incr_n            |   0.0267 |   0.0164 |   1.6311 |
datetime_index_union                         |   0.0737 |   0.0410 |   1.7965 |
strings_center                               |   7.5547 |   3.7553 |   2.0117 |
timeseries_day_incr                          |   0.0240 |   0.0087 |   2.7706 |
timeseries_day_apply                         |   0.0266 |   0.0047 |   5.6780 |
-------------------------------------------------------------------------------
Test name                                    | head[ms] | base[ms] |  ratio   |
-------------------------------------------------------------------------------
```

@shoyer tests added, and my silly dtype string substitution is gone. Let me know what you think.

@iwschris It looks like this PR may fix https://github.com/pydata/pandas/issues/6620 -- can you verify? Thanks.

@shoyer you bet. I'll look at it shortly.

@shoyer - this is the same bug. This PR fixes it.

Great! In that case please add a note referencing that bug to the release notes.

On Sat, Feb 7, 2015 at 6:47 PM, Chris Reynolds notifications@github.com
wrote:

> ## @shoyer - this is the same bug. This PR fixes it.
> 
> Reply to this email directly or view it on GitHub:
> https://github.com/pydata/pandas/pull/9345#issuecomment-73394287

Will do. I'll also expand the datetime64 precision test to include directly testing integers without the datetime64 -> int -> datetime64 casting.

@shoyer @jreback 

This should be ready for review again.

@jreback I believe I have made all the changes we discussed. This should be ready for review again.

Cool. I think that last push takes care of everything mentioned up to this point. Anything else?

just FYI

```
In [1]: x = pd.date_range('20130101',periods=3)

In [2]: x.values            
Out[2]: 
array(['2012-12-31T19:00:00.000000000-0500',
       '2013-01-01T19:00:00.000000000-0500',
       '2013-01-02T19:00:00.000000000-0500'], dtype='datetime64[ns]')

In [3]: x.values.view('i8').base
Out[3]: array([1356998400000000000, 1357084800000000000, 1357171200000000000])

In [4]: x.values.astype('i8',copy=False).base

In [5]: np.asarray(x.values,'i8').base
```

The reason we always want to take a view on a M8/m8 object is that it does NOT copy.
whereas the other 2 methods always copy (even with the `copy=False` flag).

so these DO need to be treated separately (from a regular int64)

I see. Good info.

Newest stuff now pushed.

@jreback interesting -- didn't realize that about view vs astype for datetime64

@iwschris can you just run another vbench vs master (you can limit it with `-r groupby|timeseries` if you want, just to check thanks

You bet. Should have it in a few minutes.

@jreback looks like objects weren't accounted for in that group of `if` `elif` statements. Making that change now...