Skip to content

Conversation

@dbew
Copy link
Contributor

@dbew dbew commented Apr 25, 2014

closes #4688

This PR should provide support for dateutil timezones. It was discussed quite a bit in #4689.

The discussion there ended two months back with "we should incorporate this if it can be made seamless". I think I've managed that now so it would be great to get some feedback on the changes in this PR.

Everything that works with pytz timezones should work with dateutil timezones and you shouldn't notice any difference in behaviour when you change between them. There are two exceptions which I'm looking at now: saving data to ujson and pytables.

The changes I've made just allow pandas to treat dateutil timezones exactly the same as pytz timezones (from the user perspective) - just extending conversion logic to deal with both where appropriate. This has made a few methods a bit more complicated but relatively few changes were required.

All of the significant changes are in tslib.pyx. Almost all of the other changes are adding test cases for the dateutil timezones. The test suites pass locally.

Let me know if you have any questions or if there's anything that needs doing before the PR can be accepted.

@jreback
Copy link
Contributor

jreback commented Apr 25, 2014

can you provide a vbench and its results (there maybe already something in there), but if not, pls add; essentially working with Timestamp/DatetimeIndex with a timezone for pytz & dateutil would be useful

@dbew
Copy link
Contributor Author

dbew commented Apr 28, 2014

I've tried running the vbench tests but they fail part way through with an error about checksums not being unique (output below). This happens with the current pandas master and my branch. It looks like there are duplicate tests in the test suite.

Packages installed are:
GitPython - 0.3.2.RC1
affinity - 0.1.0
psutil - 2.1.0
SQLAlchemy - 0.9.4

Error was:

sqlalchemy.exc.IntegrityError: (IntegrityError) column checksum is not unique u'INSERT INTO benchmarks (checksum, name, description) VALUES (?, ?, ?)' ('ea1993ef61c3cc4e871d2cce3c5d983c', 'eval_frame_chained_cmp_python', None)

I hacked around in eval.py a bit and got past this error (by unduplicating tests by commenting out setup = common_setup) but then get a different error:

*** Running benchmarks for baseline [4614ac8] Traceback (most recent call last): File "/users/is/dbew/src/pandas/vb_suite/test_perf.py", line 616, in <module> main() File "/users/is/dbew/src/pandas/vb_suite/test_perf.py", line 523, in main profile_comparative(benchmarks) File "/users/is/dbew/src/pandas/vb_suite/test_perf.py", line 242, in profile_comparative runner._run_and_write_results(h_baseline) File "/users/is/dbew/pyenvs/tspandas/lib/python2.7/site-packages/vbench/runner.py", line 124, in _run_and_write_results n_active_benchmarks, results = self._run_revision(rev) File "/users/is/dbew/pyenvs/tspandas/lib/python2.7/site-packages/vbench/runner.py", line 157, in _run_revision need_to_run = self._get_benchmarks_for_rev(rev) File "/users/is/dbew/pyenvs/tspandas/lib/python2.7/site-packages/vbench/runner.py", line 214, in _get_benchmarks_for_rev timestamp = self.repo.timestamps[rev] File "/users/is/dbew/src/pandas/pandas/core/series.py", line 480, in __getitem__ result = self.index.get_value(self, key) File "/users/is/dbew/src/pandas/pandas/core/index.py", line 1173, in get_value raise e1 KeyError: '4614ac8' 

I'm not sure where to go to fix this (and I'm wary of changing the tests too much!). Any suggestions?

@jreback
Copy link
Contributor

jreback commented Apr 28, 2014

are you sure you are rebase to master?

you are running test_perf.sh -b master -t HEAD ?

@dbew
Copy link
Contributor Author

dbew commented Apr 28, 2014

That's the command I was running. I was rebased to master when I submitted the PR. I'll be a little bit behind now. I've rebased to master and I still get the checksum/duplicate test error. If I comment out the setup = common_setup line in vb_suite/eval.py then things look better. It's been running for a while now and (fingers crossed) looks like it will succeed.

If being rebased to master is a requirement for running the vbench tests, it would be great to add it to the wiki page (https://github.com/pydata/pandas/wiki/Performance-Testing).

@jreback
Copy link
Contributor

jreback commented Apr 28, 2014

its not, I am just puzzled by your error.

@jreback
Copy link
Contributor

jreback commented Apr 28, 2014

@cpcloud did we have an issue with the eval.py vbench?

@dbew
Copy link
Contributor Author

dbew commented Apr 28, 2014

ah ok. Rebasing seems to have fixed things anyway. Results below.

I'm a bit surprised that some things were 2 * faster on the head than the base - possibly some uneven load on the node I was using. Ditto for the things that are 1.5 times slower..

*** Processing results... *** Invoked with : --ncalls: 3 --repeats: 3 ------------------------------------------------------------------------------- Test name | head[ms] | base[ms] | ratio | ------------------------------------------------------------------------------- index_float64_mul | 1.9953 | 5.5653 | 0.3585 | timestamp_ops_diff1 | 8.7806 | 16.4630 | 0.5334 | frame_add_st | 5.2866 | 8.9513 | 0.5906 | frame_mult_no_ne | 5.1429 | 8.3390 | 0.6167 | frame_mult_st | 5.3670 | 8.6907 | 0.6176 | frame_add | 5.1514 | 8.1043 | 0.6356 | frame_add_no_ne | 5.1620 | 7.9417 | 0.6500 | frame_mult | 5.5860 | 7.9067 | 0.7065 | index_float64_div | 2.3973 | 3.3680 | 0.7118 | timestamp_ops_diff2 | 22.5526 | 30.6676 | 0.7354 | melt_dataframe | 3.1570 | 4.2810 | 0.7374 | groupby_last_float32 | 4.7283 | 6.2920 | 0.7515 | eval_frame_mult_python_one_thread | 19.2231 | 25.3223 | 0.7591 | groupby_first_float32 | 4.6550 | 6.0060 | 0.7751 | groupby_simple_compress_timing | 39.1006 | 49.5526 | 0.7891 | eval_frame_add_python | 20.2080 | 25.0476 | 0.8068 | index_str_boolean_series_indexer | 17.5340 | 21.7293 | 0.8069 | frame_multi_and | 96.6717 | 118.7810 | 0.8139 | frame_multi_and_st | 96.8130 | 118.5303 | 0.8168 | indexing_dataframe_boolean | 47.9060 | 58.3877 | 0.8205 | indexing_dataframe_boolean_st | 49.8010 | 60.4183 | 0.8243 | timestamp_series_compare | 3.2677 | 3.9586 | 0.8255 | join_dataframe_integer_2key | 6.7584 | 8.1650 | 0.8277 | frame_multi_and_no_ne | 107.6241 | 128.7649 | 0.8358 | groupby_indices | 8.8313 | 10.5463 | 0.8374 | packers_write_pickle | 81.6313 | 97.3893 | 0.8382 | lib_fast_zip | 10.1543 | 11.9693 | 0.8484 | index_float64_construct | 56.2060 | 66.2383 | 0.8485 | frame_fancy_lookup_all | 14.3453 | 16.8599 | 0.8509 | indexing_dataframe_boolean_no_ne | 48.9690 | 57.3624 | 0.8537 | frame_ctor_list_of_dict | 96.1037 | 112.2804 | 0.8559 | unstack_sparse_keyspace | 2.1680 | 2.5090 | 0.8641 | frame_shift_axis_1 | 43.9564 | 50.8153 | 0.8650 | series_timestamp_compare | 3.2370 | 3.7393 | 0.8657 | strings_contains_few_noregex | 2.7807 | 3.1947 | 0.8704 | strings_startswith | 5.1313 | 5.8513 | 0.8769 | strings_contains_many_noregex | 2.8964 | 3.2996 | 0.8778 | frame_ctor_dtindex_QuarterEnd(1) | 1.8653 | 2.1180 | 0.8807 | frame_reindex_upcast | 10.0940 | 11.4103 | 0.8846 | strings_endswith | 5.1637 | 5.7960 | 0.8909 | frame_ctor_nested_dict | 91.3500 | 102.2827 | 0.8931 | frame_ctor_dtindex_BQuarterBegin(1) | 1.8944 | 2.1196 | 0.8937 | join_dataframe_index_single_key_small | 7.4107 | 8.2793 | 0.8951 | packers_write_pack | 19.5897 | 21.8493 | 0.8966 | strings_match | 8.4483 | 9.3930 | 0.8994 | packers_read_json_date_index | 195.2494 | 216.3324 | 0.9025 | frame_interpolate | 110.9374 | 122.0270 | 0.9091 | strings_join_split | 44.1917 | 48.5387 | 0.9104 | frame_drop_duplicates_na | 19.7106 | 21.5237 | 0.9158 | frame_reindex_both_axes_ix | 46.9763 | 51.2510 | 0.9166 | lib_fast_zip_fillna | 17.8487 | 19.4446 | 0.9179 | frame_ctor_dtindex_BMonthBegin(2) | 1.8550 | 2.0200 | 0.9183 | frame_fillna_inplace | 12.4234 | 13.5150 | 0.9192 | eval_frame_chained_cmp_python_one_thread | 85.7280 | 93.2273 | 0.9196 | index_str_boolean_indexer | 19.0310 | 20.6760 | 0.9204 | strings_strip | 5.5857 | 6.0520 | 0.9229 | frame_object_equal | 5.1287 | 5.5460 | 0.9248 | groupby_frame_cython_many_columns | 5.3680 | 5.8033 | 0.9250 | frame_ctor_nested_dict_int64 | 123.3296 | 132.7023 | 0.9294 | frame_mask_floats | 21.3384 | 22.8610 | 0.9334 | index_int64_intersection | 31.6500 | 33.8820 | 0.9341 | read_csv_vb | 20.5286 | 21.9603 | 0.9348 | strings_slice | 3.3886 | 3.6240 | 0.9351 | strings_replace | 20.5081 | 21.9186 | 0.9356 | index_float64_boolean_indexer | 6.3004 | 6.7254 | 0.9368 | stats_rank2d_axis0_average | 25.8540 | 27.5617 | 0.9380 | frame_ctor_dtindex_YearEnd(1) | 0.7373 | 0.7857 | 0.9384 | frame_from_records_generator | 72.0653 | 76.6703 | 0.9399 | frame_ctor_dtindex_Minute(2) | 1.3343 | 1.4183 | 0.9408 | frame_sort_index_by_columns | 48.7880 | 51.8423 | 0.9411 | packers_read_pickle | 60.8387 | 64.4303 | 0.9443 | frame_ctor_dtindex_MonthEnd(2) | 1.8394 | 1.9476 | 0.9444 | series_align_int64_index | 29.6777 | 31.3073 | 0.9479 | dtindex_from_series_ctor | 0.0193 | 0.0203 | 0.9492 | frame_to_string_floats | 40.6387 | 42.7690 | 0.9502 | frame_dropna_axis1_all | 328.4757 | 345.5430 | 0.9506 | ctor_index_array_string | 0.0263 | 0.0277 | 0.9511 | replace_replacena | 4.8477 | 5.0851 | 0.9533 | read_csv_comment2 | 18.4877 | 19.3777 | 0.9541 | frame_isnull | 3.8563 | 4.0417 | 0.9541 | strings_get | 3.7260 | 3.9050 | 0.9542 | series_getitem_label_slice | 0.0960 | 0.1006 | 0.9542 | index_int64_union | 83.0027 | 86.8150 | 0.9561 | strings_count | 9.0820 | 9.4966 | 0.9563 | strings_pad | 5.4110 | 5.6570 | 0.9565 | eval_frame_add_python_one_thread | 23.0480 | 24.0954 | 0.9565 | frame_constructor_ndarray | 0.1193 | 0.1246 | 0.9573 | strings_title | 4.5033 | 4.7043 | 0.9573 | index_from_series_ctor | 0.0307 | 0.0320 | 0.9578 | series_align_left_monotonic | 14.7477 | 15.3894 | 0.9583 | strings_lstrip | 5.1214 | 5.3376 | 0.9595 | frame_shift_axis0 | 22.0064 | 22.9143 | 0.9604 | groupby_frame_singlekey_integer | 3.3523 | 3.4893 | 0.9607 | timeseries_to_datetime_iso8601 | 5.6003 | 5.8250 | 0.9614 | groupby_transform | 226.0273 | 235.0620 | 0.9616 | frame_drop_duplicates | 19.0317 | 19.7810 | 0.9621 | stat_ops_frame_mean_float_axis_1 | 6.5137 | 6.7533 | 0.9645 | groupby_frame_apply | 59.9020 | 61.9946 | 0.9662 | replace_fillna | 4.4066 | 4.5570 | 0.9670 | dataframe_resample_max_string | 2.5733 | 2.6604 | 0.9673 | eval_frame_and_python | 54.2864 | 56.0973 | 0.9677 | stat_ops_level_frame_sum | 4.7561 | 4.9130 | 0.9681 | groupby_multi_size | 30.0874 | 31.0584 | 0.9687 | frame_object_unequal | 0.0100 | 0.0103 | 0.9692 | datamatrix_getitem_scalar | 0.0126 | 0.0130 | 0.9695 | frame_float_equal | 15.9620 | 16.4393 | 0.9710 | frame_to_csv2 | 123.0487 | 126.7003 | 0.9712 | eval_frame_and_python_one_thread | 52.9327 | 54.4980 | 0.9713 | frame_mask_bools | 29.7403 | 30.5800 | 0.9725 | series_getitem_pos_slice | 0.0820 | 0.0843 | 0.9727 | indexing_dataframe_boolean_rows | 0.4720 | 0.4850 | 0.9731 | strings_center | 5.4577 | 5.6033 | 0.9740 | series_value_counts_strings | 9.2594 | 9.5046 | 0.9742 | period_setitem | 166.1894 | 170.4067 | 0.9753 | stats_corr_spearman | 104.1414 | 106.7260 | 0.9758 | groupby_series_simple_cython | 285.0246 | 291.6270 | 0.9774 | frame_ctor_dtindex_CustomBusinessDay(1) | 1.8604 | 1.9034 | 0.9774 | frame_to_csv_date_formatting | 19.9323 | 20.3923 | 0.9774 | frame_fillna_many_columns_pad | 14.9657 | 15.3089 | 0.9776 | groupby_multi_cython | 19.5580 | 19.9960 | 0.9781 | frame_ctor_dtindex_BQuarterBegin(2) | 0.7044 | 0.7196 | 0.9788 | frame_apply_ref_by_name | 18.4900 | 18.8860 | 0.9790 | reshape_unstack_simple | 4.2503 | 4.3406 | 0.9792 | frame_ctor_dtindex_Day(1) | 1.3277 | 1.3553 | 0.9796 | sort_level_one | 4.8783 | 4.9787 | 0.9798 | index_float64_boolean_series_indexer | 6.5590 | 6.6930 | 0.9800 | strings_lower | 4.5153 | 4.6047 | 0.9806 | strings_extract | 52.0624 | 53.0787 | 0.9809 | frame_apply_user_func | 260.3103 | 265.1023 | 0.9819 | strings_contains_many | 8.2290 | 8.3787 | 0.9821 | frame_fancy_lookup | 5.3953 | 5.4893 | 0.9829 | strings_contains_few | 7.5646 | 7.6950 | 0.9831 | sparse_frame_constructor | 12.8647 | 13.0813 | 0.9834 | join_dataframe_index_single_key_bigger_sort | 17.9470 | 18.2483 | 0.9835 | frame_get_numeric_data | 0.2004 | 0.2037 | 0.9836 | frame_iteritems | 50.4746 | 51.2960 | 0.9840 | frame_ctor_dtindex_CBMonthBegin(1) | 3.2837 | 3.3353 | 0.9845 | frame_interpolate_some_good | 2.7424 | 2.7850 | 0.9847 | groupby_apply_dict_return | 53.9667 | 54.7557 | 0.9856 | frame_ctor_dtindex_BusinessDay(1) | 1.7227 | 1.7477 | 0.9857 | strings_repeat | 5.6504 | 5.7317 | 0.9858 | frame_xs_row | 0.0687 | 0.0696 | 0.9863 | stat_ops_frame_sum_float_axis_0 | 5.7510 | 5.8256 | 0.9872 | frame_ctor_dtindex_YearEnd(2) | 0.7067 | 0.7153 | 0.9879 | packers_write_csv | 1687.6007 | 1707.6540 | 0.9883 | series_constructor_ndarray | 0.0270 | 0.0273 | 0.9884 | groupby_pivot_table | 22.0580 | 22.3014 | 0.9891 | eval_frame_chained_cmp_python | 91.8124 | 92.7603 | 0.9898 | series_string_vector_slice | 231.0763 | 233.3353 | 0.9903 | read_csv_standard | 11.6446 | 11.7574 | 0.9904 | strings_upper | 4.3407 | 4.3823 | 0.9905 | frame_iloc_big | 0.2793 | 0.2820 | 0.9907 | groupby_multi_series_op | 17.6103 | 17.7677 | 0.9911 | frame_dropna_axis1_any | 218.1180 | 219.8673 | 0.9920 | read_csv_infer_datetime_format_ymd | 2.9686 | 2.9913 | 0.9924 | timeseries_custom_bday_incr_n | 0.0417 | 0.0420 | 0.9924 | timeseries_custom_bmonthend_incr_n | 0.1806 | 0.1820 | 0.9926 | timedelta_convert_string_seconds | 245.8370 | 247.6426 | 0.9927 | frame_insert_500_columns_end | 137.9886 | 138.9033 | 0.9934 | timeseries_custom_bmonthend_incr | 0.1636 | 0.1647 | 0.9937 | frame_ctor_dtindex_Nano(1) | 1.6590 | 1.6693 | 0.9938 | read_csv_thou_vb | 18.3896 | 18.4956 | 0.9943 | write_csv_standard | 47.1207 | 47.3700 | 0.9947 | frame_get_dtype_counts | 0.1350 | 0.1357 | 0.9953 | series_align_irregular_string | 83.6217 | 83.9940 | 0.9956 | series_ctor_from_dict | 3.8386 | 3.8557 | 0.9956 | frame_iteritems_cached | 0.8940 | 0.8980 | 0.9956 | frame_nonunique_equal | 5.0700 | 5.0890 | 0.9963 | frame_ctor_dtindex_YearBegin(2) | 0.7033 | 0.7053 | 0.9972 | frame_from_records_generator_nrows | 1.1396 | 1.1423 | 0.9977 | frame_ctor_dtindex_BQuarterEnd(1) | 1.8794 | 1.8837 | 0.9977 | strings_cat | 1.4300 | 1.4327 | 0.9981 | frame_getitem_single_column | 39.0877 | 39.1480 | 0.9985 | panel_pct_change_minor | 6666.7944 | 6676.9559 | 0.9985 | replace_large_dict | 24111.6477 | 24148.0513 | 0.9985 | read_table_multiple_date_baseline | 97.5920 | 97.7290 | 0.9986 | packers_read_pack | 97.1883 | 97.3206 | 0.9986 | frame_iloc_dups | 0.3823 | 0.3827 | 0.9990 | frame_to_csv | 147.8800 | 147.9677 | 0.9994 | timeseries_period_downsample_mean | 13.3500 | 13.3570 | 0.9995 | frame_ctor_dtindex_BMonthEnd(2) | 1.8524 | 1.8524 | 1.0000 | frame_nonunique_unequal | 0.0110 | 0.0110 | 1.0000 | join_dataframe_index_multi | 23.5303 | 23.5243 | 1.0003 | frame_ctor_dtindex_MonthBegin(1) | 1.8129 | 1.8117 | 1.0007 | stat_ops_level_series_sum_multiple | 9.5453 | 9.5376 | 1.0008 | datetimeindex_add_offset | 0.3254 | 0.3250 | 1.0010 | frame_assign_timeseries_index | 0.8844 | 0.8833 | 1.0012 | frame_apply_lambda_mean | 8.7566 | 8.7454 | 1.0013 | frame_ctor_dtindex_BYearBegin(1) | 0.7077 | 0.7067 | 1.0015 | datetime_index_intersection | 0.4277 | 0.4270 | 1.0017 | frame_apply_pass_thru | 6.6960 | 6.6840 | 1.0018 | dataframe_resample_min_string | 2.1480 | 2.1440 | 1.0019 | frame_html_repr_trunc_mi | 57.2037 | 57.0916 | 1.0020 | datetimeindex_normalize | 3.5396 | 3.5326 | 1.0020 | series_value_counts_int64 | 2.8319 | 2.8257 | 1.0022 | frame_ctor_dtindex_CDay(1) | 1.8810 | 1.8760 | 1.0027 | frame_insert_100_columns_begin | 80.0610 | 79.8160 | 1.0031 | stats_rank_pct_average | 33.7420 | 33.6357 | 1.0032 | stat_ops_frame_mean_float_axis_0 | 5.8457 | 5.8260 | 1.0034 | frame_repr_wide | 18.2863 | 18.2240 | 1.0034 | frame_loc_dups | 1.0564 | 1.0526 | 1.0035 | frame_ctor_dtindex_QuarterBegin(2) | 0.7047 | 0.7021 | 1.0037 | timeseries_slice_minutely | 0.1004 | 0.1000 | 1.0040 | sort_level_zero | 4.9340 | 4.9133 | 1.0042 | groupby_multi_different_functions | 14.7230 | 14.6570 | 1.0045 | packers_write_json_date_index | 130.1154 | 129.4047 | 1.0055 | timedelta_convert_string | 240.3323 | 238.7787 | 1.0065 | dti_reset_index | 0.6297 | 0.6254 | 1.0069 | reshape_stack_simple | 3.1380 | 3.1163 | 1.0070 | stats_rank2d_axis1_average | 15.4777 | 15.3673 | 1.0072 | frame_ctor_dtindex_MonthEnd(1) | 1.8300 | 1.8167 | 1.0073 | read_csv_infer_datetime_format_iso8601 | 2.4614 | 2.4433 | 1.0074 | reindex_frame_level_reindex | 1.0386 | 1.0310 | 1.0074 | timeseries_infer_freq | 10.7423 | 10.6620 | 1.0075 | stats_rank_average | 33.1416 | 32.8877 | 1.0077 | frame_ctor_dtindex_BDay(2) | 1.7720 | 1.7579 | 1.0080 | dataframe_resample_max_numpy | 2.5887 | 2.5680 | 1.0080 | frame_ctor_dtindex_Hour(2) | 1.3676 | 1.3567 | 1.0081 | frame_reindex_both_axes | 51.3857 | 50.9680 | 1.0082 | frame_ctor_dtindex_CDay(2) | 1.8326 | 1.8170 | 1.0086 | dataframe_resample_mean_numpy | 3.1699 | 3.1416 | 1.0090 | timeseries_1min_5min_ohlc | 0.9280 | 0.9197 | 1.0091 | frame_ctor_dtindex_CustomBusinessDay(2) | 1.8313 | 1.8144 | 1.0093 | frame_ctor_dtindex_CBMonthEnd(1) | 3.9914 | 3.9543 | 1.0094 | timeseries_to_datetime_YYYYMMDD | 11.4703 | 11.3627 | 1.0095 | frame_drop_dup_na_inplace | 3.0700 | 3.0410 | 1.0095 | groupby_sum_booleans | 1.5473 | 1.5326 | 1.0095 | groupby_last | 4.7294 | 4.6833 | 1.0098 | panel_pct_change_items | 6043.2860 | 5984.2366 | 1.0099 | dataframe_resample_min_numpy | 2.1714 | 2.1493 | 1.0102 | stats_rolling_mean | 1.5807 | 1.5647 | 1.0103 | concat_empty_frames2 | 1.1227 | 1.1113 | 1.0103 | frame_reindex_axis1 | 646.7133 | 639.5580 | 1.0112 | append_frame_single_mixed | 1.8370 | 1.8163 | 1.0114 | frame_drop_dup_inplace | 3.3203 | 3.2820 | 1.0117 | datetimeindex_infer_dst | 4.0924 | 4.0437 | 1.0120 | frame_ctor_dtindex_Micro(1) | 1.3293 | 1.3134 | 1.0122 | timeseries_1min_5min_mean | 0.8493 | 0.8390 | 1.0123 | frame_ctor_dtindex_MonthBegin(2) | 1.8240 | 1.8016 | 1.0124 | dataframe_resample_mean_string | 3.2030 | 3.1637 | 1.0124 | read_csv_infer_datetime_format_custom | 12.5283 | 12.3717 | 1.0127 | timedelta_convert_int | 0.2883 | 0.2847 | 1.0128 | frame_html_repr_trunc_si | 44.9580 | 44.3664 | 1.0133 | groupby_first | 4.5173 | 4.4560 | 1.0138 | frame_ctor_dtindex_CBMonthBegin(2) | 2.9077 | 2.8673 | 1.0141 | frame_apply_axis_1 | 121.7580 | 120.0610 | 1.0141 | frame_ctor_dtindex_Second(1) | 1.3216 | 1.3023 | 1.0148 | read_parse_dates_iso8601 | 1.8183 | 1.7914 | 1.0150 | frame_ctor_dtindex_BDay(1) | 1.7197 | 1.6933 | 1.0156 | stats_rank_average_int | 22.6676 | 22.3196 | 1.0156 | frame_ctor_dtindex_BYearEnd(1) | 0.7117 | 0.7006 | 1.0158 | frame_getitem_single_column2 | 41.4877 | 40.8397 | 1.0159 | frame_ctor_dtindex_YearBegin(1) | 0.7203 | 0.7087 | 1.0165 | groupby_multi_different_numpy_functions | 14.8776 | 14.6296 | 1.0170 | frame_ctor_dtindex_BMonthEnd(1) | 1.8377 | 1.8063 | 1.0174 | frame_dropna_axis0_any | 65.4663 | 64.3264 | 1.0177 | frame_ctor_dtindex_BusinessDay(2) | 1.7690 | 1.7380 | 1.0178 | read_table_multiple_date | 217.1130 | 213.2933 | 1.0179 | frame_dropna_axis0_all | 106.6650 | 104.7327 | 1.0184 | frame_ctor_dtindex_Second(2) | 1.3301 | 1.3057 | 1.0187 | stat_ops_series_std | 1.2403 | 1.2163 | 1.0197 | join_dataframe_integer_key | 2.2031 | 2.1597 | 1.0201 | merge_2intkey_sort | 48.2104 | 47.2504 | 1.0203 | indexing_panel_subset | 1.3866 | 1.3587 | 1.0206 | frame_apply_np_mean | 9.6290 | 9.4303 | 1.0211 | frame_ctor_dtindex_Day(2) | 1.3370 | 1.3093 | 1.0211 | frame_ctor_dtindex_Milli(2) | 1.3367 | 1.3087 | 1.0214 | frame_interpolate_some_good_infer | 4.9647 | 4.8600 | 1.0215 | groupby_multi_python | 171.9500 | 168.1400 | 1.0227 | stat_ops_level_series_sum | 3.4076 | 3.3253 | 1.0248 | strings_len | 3.4900 | 3.4020 | 1.0259 | packers_read_csv | 177.4120 | 172.9314 | 1.0259 | series_drop_duplicates_string | 0.8386 | 0.8173 | 1.0261 | sparse_series_to_frame | 161.3110 | 157.1720 | 1.0263 | frame_ctor_dtindex_Minute(1) | 1.3564 | 1.3204 | 1.0273 | frame_ctor_dtindex_Week(1) | 1.5876 | 1.5450 | 1.0276 | frame_ctor_dtindex_BYearEnd(2) | 0.7266 | 0.7070 | 1.0278 | frame_xs_mi_ix | 0.5043 | 0.4900 | 1.0292 | frame_repr_tall | 28.0213 | 27.2086 | 1.0299 | reindex_frame_level_align | 1.0764 | 1.0450 | 1.0300 | timeseries_custom_bday_incr | 0.0244 | 0.0237 | 1.0302 | frame_to_html_mixed | 355.1573 | 344.5957 | 1.0306 | frame_ctor_dtindex_BYearBegin(2) | 0.7263 | 0.7047 | 1.0307 | frame_reindex_columns | 0.4203 | 0.4077 | 1.0310 | frame_boolean_row_select | 0.4070 | 0.3947 | 1.0312 | frame_ctor_dtindex_Micro(2) | 1.3400 | 1.2993 | 1.0313 | frame_ctor_dtindex_QuarterEnd(2) | 0.7240 | 0.7013 | 1.0323 | series_xs_mi_ix | 0.4617 | 0.4470 | 1.0327 | groupby_frame_apply_overhead | 12.4576 | 12.0606 | 1.0329 | timeseries_asof_single | 0.0517 | 0.0500 | 1.0334 | stat_ops_frame_sum_float_axis_1 | 6.2683 | 6.0577 | 1.0348 | stat_ops_frame_sum_int_axis_0 | 6.3940 | 6.1777 | 1.0350 | concat_series_axis1 | 149.2670 | 144.0970 | 1.0359 | timeseries_asof_nan | 8.6093 | 8.3080 | 1.0363 | frame_ctor_dtindex_Nano(2) | 1.6960 | 1.6363 | 1.0365 | reindex_multiindex | 1.8130 | 1.7490 | 1.0366 | indexing_dataframe_boolean_rows_object | 0.7529 | 0.7260 | 1.0371 | series_drop_duplicates_int | 0.9147 | 0.8817 | 1.0374 | strings_findall | 11.7080 | 11.2773 | 1.0382 | frame_to_csv_mixed | 255.3407 | 245.9053 | 1.0384 | frame_from_series | 0.1477 | 0.1420 | 1.0397 | timeseries_asof | 9.3141 | 8.9486 | 1.0408 | frame_ctor_dtindex_Milli(1) | 1.3660 | 1.3117 | 1.0414 | datetime_index_union | 0.0937 | 0.0900 | 1.0415 | frame_dtypes | 0.1434 | 0.1376 | 1.0416 | panel_shift | 454.3660 | 436.1170 | 1.0418 | frame_ctor_dtindex_BMonthBegin(1) | 1.9227 | 1.8430 | 1.0433 | timeseries_large_lookup_value | 0.0400 | 0.0383 | 1.0436 | eval_frame_mult_python | 26.8696 | 25.6897 | 1.0459 | reshape_pivot_time_series | 246.1733 | 234.3150 | 1.0506 | frame_ctor_dtindex_QuarterBegin(1) | 1.9030 | 1.8103 | 1.0512 | frame_ctor_dtindex_Week(2) | 1.6140 | 1.5350 | 1.0515 | dataframe_getitem_scalar | 0.0130 | 0.0123 | 1.0516 | datetimeindex_unique | 0.1580 | 0.1500 | 1.0530 | stat_ops_frame_mean_int_axis_0 | 6.5147 | 6.1851 | 1.0533 | panel_pct_change_major | 6246.0247 | 5929.1674 | 1.0534 | stat_ops_level_frame_sum_multiple | 11.3093 | 10.7217 | 1.0548 | merge_2intkey_nosort | 21.8900 | 20.7467 | 1.0551 | frame_ctor_dtindex_Hour(1) | 1.3833 | 1.3107 | 1.0554 | stat_ops_frame_sum_int_axis_1 | 6.7077 | 6.3147 | 1.0622 | groupby_frame_median | 8.1857 | 7.6940 | 1.0639 | timeseries_timestamp_downsample_mean | 6.2390 | 5.8283 | 1.0705 | stat_ops_frame_mean_int_axis_1 | 7.7223 | 7.2040 | 1.0719 | frame_float_unequal | 0.0106 | 0.0099 | 1.0720 | timeseries_sort_index | 10.2407 | 9.5297 | 1.0746 | timeseries_add_irregular | 22.8906 | 21.2816 | 1.0756 | match_strings | 0.5736 | 0.5280 | 1.0864 | frame_reindex_axis0 | 139.6887 | 127.7893 | 1.0931 | strings_rstrip | 6.1407 | 5.2513 | 1.1694 | frame_ctor_dtindex_CBMonthEnd(2) | 4.7220 | 3.9756 | 1.1877 | concat_small_frames | 37.6516 | 31.0627 | 1.2121 | timeseries_timestamp_tzinfo_cons | 0.0236 | 0.0187 | 1.2638 | concat_empty_frames1 | 1.4373 | 1.1267 | 1.2757 | dti_reset_index_tz | 19.3223 | 14.7180 | 1.3128 | append_frame_single_homogenous | 1.7987 | 1.2830 | 1.4019 | join_dataframe_index_single_key_bigger | 12.3227 | 8.7370 | 1.4104 | frame_ctor_dtindex_BQuarterEnd(2) | 1.0760 | 0.7060 | 1.5241 | ------------------------------------------------------------------------------- Test name | head[ms] | base[ms] | ratio | ------------------------------------------------------------------------------- 
@jreback
Copy link
Contributor

jreback commented Apr 28, 2014

FYI, use triple-quotes around the text to format

take the vbench with a grain of salt....disk/cpu load can affect it.

I I find something that is consistenly worse/better then I would just run it individually (in ipython,
just run the direct code), to optimize/verify.

and things < 1ms are sort of randomish anyhow.

you can also run a subset of tests with -r <regex>

@jreback
Copy link
Contributor

jreback commented Apr 28, 2014

which of the tail tests (better or worse results) affected by this? (maybe rerun that as a subset)

@dbew
Copy link
Contributor Author

dbew commented Apr 28, 2014

I'll have a go tomorrow when I can run the tests locally and see if it's a bit more consistent.

Thanks for the tip on the text.

@jreback jreback added this to the 0.14.1 milestone Apr 28, 2014
@dbew
Copy link
Contributor Author

dbew commented May 2, 2014

I've run the tests locally, the results are much the same. The really slow one is an anomaly, I reran the tests and it was the same speed. read_store_table_mixed does seem to be an accurate result though.

*** Processing results... *** Invoked with : --ncalls: 3 --repeats: 3 ------------------------------------------------------------------------------- Test name | head[ms] | base[ms] | ratio | ------------------------------------------------------------------------------- datetimeindex_converter | 1.0409 | 1054.6150 | 0.0010 | timedelta_convert_int | 0.2560 | 101.7404 | 0.0025 | frame_shift_axis0 | 15.9233 | 97.7677 | 0.1629 | timeseries_sort_index | 10.0977 | 23.3627 | 0.4322 | frame_shift_axis_1 | 34.8147 | 79.2703 | 0.4392 | strings_lstrip | 4.5143 | 7.0144 | 0.6436 | frame_from_records_generator_nrows | 1.0140 | 1.2213 | 0.8302 | frame_ctor_dtindex_CDay(1) | 1.5984 | 1.8583 | 0.8601 | strings_center | 4.6984 | 5.4610 | 0.8604 | frame_ctor_dtindex_CustomBusinessDay(2) | 1.5953 | 1.8493 | 0.8627 | frame_ctor_dtindex_CDay(2) | 1.5930 | 1.8407 | 0.8654 | strings_match | 7.9904 | 9.2240 | 0.8663 | frame_ctor_dtindex_CustomBusinessDay(1) | 1.5983 | 1.8373 | 0.8699 | frame_iloc_dups | 0.3017 | 0.3443 | 0.8763 | stats_rank_average | 27.9030 | 31.2906 | 0.8917 | strings_pad | 4.6790 | 5.2364 | 0.8935 | strings_rstrip | 4.3897 | 4.8947 | 0.8968 | strings_strip | 4.9460 | 5.4757 | 0.9033 | frame_fancy_lookup_all | 16.6863 | 18.3833 | 0.9077 | strings_contains_many | 7.0077 | 7.6180 | 0.9199 | strings_contains_few | 6.8297 | 7.4120 | 0.9214 | strings_upper | 3.9027 | 4.2133 | 0.9263 | series_string_vector_slice | 228.8633 | 247.0767 | 0.9263 | strings_lower | 4.1236 | 4.4510 | 0.9264 | strings_slice | 3.3860 | 3.6450 | 0.9289 | strings_startswith | 5.5210 | 5.9144 | 0.9335 | strings_repeat | 5.1239 | 5.4437 | 0.9413 | strings_endswith | 5.5997 | 5.9193 | 0.9460 | strings_get | 3.5867 | 3.7880 | 0.9469 | strings_join_split | 43.3904 | 45.8133 | 0.9471 | timeseries_asof_single | 0.0433 | 0.0457 | 0.9478 | strings_cat | 1.3057 | 1.3766 | 0.9484 | frame_iloc_big | 0.2444 | 0.2561 | 0.9544 | packers_write_json_date_index | 35.6096 | 37.1063 | 0.9597 | query_store_table | 5.9327 | 6.1694 | 0.9616 | packers_write_json | 26.7590 | 27.7973 | 0.9626 | strings_count | 8.1590 | 8.4470 | 0.9659 | timedelta_convert_string | 244.6030 | 253.1193 | 0.9664 | frame_dtypes | 0.2526 | 0.2607 | 0.9692 | series_value_counts_strings | 9.1523 | 9.4387 | 0.9697 | groupby_indices | 7.6713 | 7.9087 | 0.9700 | strings_findall | 9.9219 | 10.2180 | 0.9710 | lib_fast_zip | 10.3393 | 10.6467 | 0.9711 | series_getitem_pos_slice | 0.0687 | 0.0707 | 0.9719 | timedelta_convert_string_seconds | 248.2156 | 255.2703 | 0.9724 | sparse_frame_constructor | 11.0970 | 11.4090 | 0.9727 | frame_from_records_generator | 70.6619 | 72.6237 | 0.9730 | frame_xs_row | 0.0610 | 0.0626 | 0.9734 | stat_ops_frame_mean_float_axis_0 | 5.2234 | 5.3631 | 0.9739 | read_csv_standard | 10.7373 | 11.0217 | 0.9742 | query_store_table_wide | 11.6373 | 11.9443 | 0.9743 | timestamp_ops_diff2 | 19.1614 | 19.6586 | 0.9747 | strings_replace | 21.6100 | 22.1666 | 0.9749 | groupby_multi_cython | 17.9017 | 18.3533 | 0.9754 | frame_ctor_dtindex_YearEnd(1) | 0.5316 | 0.5440 | 0.9772 | timestamp_series_compare | 2.7907 | 2.8513 | 0.9787 | frame_to_csv_mixed | 249.7117 | 255.0967 | 0.9789 | frame_to_csv2 | 117.8810 | 120.4160 | 0.9789 | stats_rank_average_int | 22.9394 | 23.4264 | 0.9792 | strings_contains_many_noregex | 3.1320 | 3.1977 | 0.9795 | timeseries_timestamp_downsample_mean | 5.7313 | 5.8510 | 0.9795 | frame_ctor_dtindex_BQuarterBegin(2) | 0.5229 | 0.5337 | 0.9799 | series_timestamp_compare | 2.8059 | 2.8613 | 0.9806 | stat_ops_frame_mean_float_axis_1 | 5.2467 | 5.3473 | 0.9812 | timeseries_large_lookup_value | 0.0334 | 0.0340 | 0.9813 | dtindex_from_series_ctor | 0.0170 | 0.0173 | 0.9817 | dataframe_resample_mean_string | 2.8410 | 2.8910 | 0.9827 | strings_title | 4.3263 | 4.3996 | 0.9833 | timeseries_slice_minutely | 0.0847 | 0.0860 | 0.9852 | read_parse_dates_iso8601 | 1.6353 | 1.6597 | 0.9853 | dataframe_resample_mean_numpy | 2.8837 | 2.9254 | 0.9857 | frame_ctor_dtindex_BYearEnd(1) | 0.5320 | 0.5393 | 0.9864 | frame_ctor_dtindex_YearBegin(1) | 0.5340 | 0.5413 | 0.9865 | sort_level_one | 4.0557 | 4.1110 | 0.9865 | strings_len | 2.9844 | 3.0234 | 0.9871 | read_csv_infer_datetime_format_iso8601 | 2.2457 | 2.2740 | 0.9875 | strings_contains_few_noregex | 3.0406 | 3.0787 | 0.9876 | dataframe_resample_max_numpy | 2.0476 | 2.0710 | 0.9887 | frame_add | 4.3790 | 4.4280 | 0.9889 | frame_ctor_dtindex_BQuarterEnd(2) | 0.5263 | 0.5321 | 0.9891 | series_align_irregular_string | 82.7163 | 83.6274 | 0.9891 | stat_ops_frame_sum_int_axis_0 | 4.9057 | 4.9583 | 0.9894 | frame_ctor_dtindex_QuarterBegin(2) | 0.5263 | 0.5320 | 0.9894 | dataframe_resample_max_string | 2.0219 | 2.0427 | 0.9898 | packers_read_hdf_store | 4.0007 | 4.0406 | 0.9901 | groupby_simple_compress_timing | 38.4030 | 38.7696 | 0.9905 | timeseries_period_downsample_mean | 12.8290 | 12.9503 | 0.9906 | index_int64_intersection | 25.8303 | 26.0280 | 0.9924 | frame_ctor_dtindex_YearBegin(2) | 0.5307 | 0.5344 | 0.9932 | frame_add_st | 4.2894 | 4.3177 | 0.9934 | index_str_boolean_series_indexer | 12.8260 | 12.9050 | 0.9939 | series_drop_duplicates_string | 0.8107 | 0.8156 | 0.9940 | plot_timeseries_period | 63.1906 | 63.5603 | 0.9942 | write_store_table_mixed | 40.4610 | 40.6926 | 0.9943 | stat_ops_series_std | 0.8543 | 0.8590 | 0.9945 | reshape_pivot_time_series | 165.1697 | 166.0650 | 0.9946 | read_csv_comment2 | 17.1107 | 17.2009 | 0.9948 | datetime_index_intersection | 0.3810 | 0.3830 | 0.9948 | frame_ctor_dtindex_YearEnd(2) | 0.5329 | 0.5356 | 0.9950 | write_store_mixed | 14.9624 | 15.0333 | 0.9953 | melt_dataframe | 2.3127 | 2.3236 | 0.9953 | write_store | 5.6510 | 5.6757 | 0.9956 | frame_ctor_dtindex_BYearBegin(2) | 0.5303 | 0.5326 | 0.9957 | read_csv_infer_datetime_format_ymd | 2.6964 | 2.7080 | 0.9957 | packers_read_pickle | 0.7090 | 0.7120 | 0.9958 | frame_ctor_dtindex_QuarterEnd(2) | 0.5304 | 0.5326 | 0.9958 | read_csv_thou_vb | 17.1623 | 17.2287 | 0.9961 | timeseries_asof_nan | 8.7883 | 8.8213 | 0.9963 | frame_ctor_dtindex_QuarterEnd(1) | 1.5813 | 1.5860 | 0.9970 | frame_ctor_dtindex_BYearEnd(2) | 0.5376 | 0.5390 | 0.9975 | datetimeindex_unique | 0.1420 | 0.1423 | 0.9978 | stat_ops_frame_sum_float_axis_1 | 4.9463 | 4.9551 | 0.9982 | frame_to_csv | 151.5840 | 151.8404 | 0.9983 | dataframe_resample_min_numpy | 2.0517 | 2.0543 | 0.9987 | groupby_frame_apply | 60.6306 | 60.6940 | 0.9990 | frame_interpolate_some_good | 2.5680 | 2.5706 | 0.9990 | dataframe_resample_min_string | 2.0250 | 2.0270 | 0.9990 | read_csv_vb | 20.3864 | 20.4047 | 0.9991 | reindex_frame_level_reindex | 0.8074 | 0.8080 | 0.9992 | write_store_table_panel | 45.8213 | 45.8570 | 0.9992 | frame_mult | 4.3720 | 4.3754 | 0.9992 | frame_dropna_axis1_any | 185.5717 | 185.6907 | 0.9994 | frame_multi_and | 37.4703 | 37.4897 | 0.9995 | sparse_series_to_frame | 142.9380 | 142.9966 | 0.9996 | frame_reindex_axis0 | 83.9490 | 83.9657 | 0.9998 | series_getitem_label_slice | 0.0790 | 0.0790 | 1.0000 | stats_rolling_mean | 1.5477 | 1.5477 | 1.0000 | series_align_int64_index | 30.2207 | 30.2137 | 1.0002 | append_frame_single_mixed | 1.3827 | 1.3820 | 1.0005 | frame_reindex_upcast | 10.5883 | 10.5817 | 1.0006 | read_csv_infer_datetime_format_custom | 12.5303 | 12.5203 | 1.0008 | frame_nonunique_equal | 4.5937 | 4.5900 | 1.0008 | frame_ctor_dtindex_Week(1) | 1.3570 | 1.3557 | 1.0009 | write_store_table | 34.0040 | 33.9693 | 1.0010 | frame_interpolate | 108.0631 | 107.9487 | 1.0011 | frame_fillna_inplace | 9.8370 | 9.8260 | 1.0011 | stat_ops_frame_sum_int_axis_1 | 5.1017 | 5.0957 | 1.0012 | packers_write_hdf_table | 25.3723 | 25.3237 | 1.0019 | indexing_panel_subset | 1.1477 | 1.1450 | 1.0023 | stat_ops_level_frame_sum_multiple | 9.7563 | 9.7330 | 1.0024 | read_store_table_panel | 23.6561 | 23.5950 | 1.0026 | frame_mask_bools | 15.3630 | 15.3163 | 1.0030 | frame_dropna_axis1_all | 319.1180 | 318.0524 | 1.0034 | timestamp_ops_diff1 | 6.5420 | 6.5197 | 1.0034 | datetimeindex_normalize | 3.0833 | 3.0727 | 1.0034 | read_table_multiple_date | 199.3384 | 198.6194 | 1.0036 | frame_multi_and_st | 37.5340 | 37.3960 | 1.0037 | indexing_dataframe_boolean_rows | 0.4733 | 0.4716 | 1.0037 | frame_ctor_dtindex_BYearBegin(1) | 0.5340 | 0.5320 | 1.0037 | series_drop_duplicates_int | 0.8790 | 0.8754 | 1.0042 | packers_write_csv | 616.8996 | 614.2346 | 1.0043 | frame_to_csv_date_formatting | 20.5030 | 20.4127 | 1.0044 | datetimeindex_infer_dst | 4.1150 | 4.0944 | 1.0050 | stat_ops_frame_sum_float_axis_0 | 5.1577 | 5.1290 | 1.0056 | stat_ops_frame_mean_int_axis_1 | 5.5340 | 5.5029 | 1.0056 | timeseries_asof | 9.4083 | 9.3547 | 1.0057 | join_dataframe_index_single_key_small | 7.0637 | 7.0213 | 1.0060 | frame_repr_wide | 19.9350 | 19.8127 | 1.0062 | frame_reindex_axis1 | 549.6536 | 546.2616 | 1.0062 | groupby_multi_different_numpy_functions | 13.9853 | 13.8984 | 1.0063 | packers_write_pack | 1.9750 | 1.9627 | 1.0063 | replace_fillna | 2.0940 | 2.0807 | 1.0064 | write_store_table_wide | 83.5954 | 83.0537 | 1.0065 | timeseries_add_irregular | 21.4920 | 21.3500 | 1.0067 | frame_mask_floats | 5.3570 | 5.3200 | 1.0070 | indexing_dataframe_boolean_no_ne | 54.5087 | 54.1257 | 1.0071 | frame_html_repr_trunc_si | 44.1527 | 43.8333 | 1.0073 | indexing_dataframe_boolean | 8.9216 | 8.8540 | 1.0076 | frame_drop_duplicates_na | 19.8650 | 19.7117 | 1.0078 | frame_ctor_dtindex_MonthEnd(2) | 1.5870 | 1.5743 | 1.0081 | frame_ctor_dtindex_Minute(2) | 1.1800 | 1.1704 | 1.0082 | timeseries_to_datetime_YYYYMMDD | 11.6450 | 11.5493 | 1.0083 | groupby_first | 4.2274 | 4.1916 | 1.0085 | join_dataframe_integer_key | 2.1223 | 2.1044 | 1.0085 | frame_mult_no_ne | 4.2210 | 4.1846 | 1.0087 | stat_ops_level_frame_sum | 4.1293 | 4.0933 | 1.0088 | frame_drop_dup_na_inplace | 2.9473 | 2.9207 | 1.0091 | groupby_first_float32 | 4.2140 | 4.1757 | 1.0092 | groupby_last | 4.3674 | 4.3274 | 1.0092 | frame_ctor_dtindex_BQuarterBegin(1) | 1.6216 | 1.6067 | 1.0093 | frame_html_repr_trunc_mi | 57.0863 | 56.5410 | 1.0096 | frame_apply_user_func | 137.4396 | 136.1006 | 1.0098 | frame_ctor_dtindex_BMonthBegin(2) | 1.6030 | 1.5873 | 1.0099 | frame_apply_lambda_mean | 7.3343 | 7.2626 | 1.0099 | stats_corr_spearman | 94.6993 | 93.7677 | 1.0099 | frame_to_html_mixed | 340.1703 | 336.7563 | 1.0101 | indexing_dataframe_boolean_st | 8.8317 | 8.7410 | 1.0104 | read_store | 2.1727 | 2.1500 | 1.0106 | read_store_mixed | 4.9823 | 4.9299 | 1.0106 | frame_reindex_columns | 0.4150 | 0.4106 | 1.0106 | frame_reindex_both_axes_ix | 36.7523 | 36.3634 | 1.0107 | join_dataframe_index_single_key_bigger_sort | 16.0000 | 15.8277 | 1.0109 | read_table_multiple_date_baseline | 89.7303 | 88.7410 | 1.0111 | groupby_last_float32 | 4.3170 | 4.2694 | 1.0112 | frame_loc_dups | 0.9007 | 0.8907 | 1.0112 | frame_fillna_many_columns_pad | 13.0677 | 12.9183 | 1.0116 | frame_multi_and_no_ne | 93.4497 | 92.3711 | 1.0117 | concat_empty_frames1 | 0.9170 | 0.9063 | 1.0118 | stat_ops_level_series_sum | 3.1450 | 3.1073 | 1.0121 | frame_add_no_ne | 4.2297 | 4.1786 | 1.0122 | frame_dropna_axis0_all | 54.2043 | 53.5444 | 1.0123 | stat_ops_level_series_sum_multiple | 8.7690 | 8.6606 | 1.0125 | frame_from_series | 0.0811 | 0.0800 | 1.0129 | reindex_multiindex | 1.6566 | 1.6350 | 1.0132 | sort_level_zero | 4.1594 | 4.1050 | 1.0132 | append_frame_single_homogenous | 1.0330 | 1.0193 | 1.0134 | eval_frame_and_all_threads | 34.7629 | 34.3003 | 1.0135 | frame_ctor_dtindex_MonthBegin(2) | 1.5517 | 1.5310 | 1.0135 | stat_ops_frame_mean_int_axis_0 | 4.9500 | 4.8840 | 1.0135 | groupby_multi_python | 158.1093 | 155.9950 | 1.0136 | eval_frame_and_python_one_thread | 48.9903 | 48.3263 | 1.0137 | read_store_table_wide | 11.1307 | 10.9797 | 1.0137 | indexing_dataframe_boolean_rows_object | 0.7257 | 0.7157 | 1.0140 | merge_2intkey_sort | 44.6900 | 44.0714 | 1.0140 | series_align_left_monotonic | 14.6430 | 14.4397 | 1.0141 | index_from_series_ctor | 0.0281 | 0.0277 | 1.0144 | frame_ctor_dtindex_BMonthBegin(1) | 1.5957 | 1.5730 | 1.0144 | frame_ctor_nested_dict | 81.9186 | 80.7037 | 1.0151 | frame_drop_duplicates | 20.0319 | 19.7330 | 1.0151 | packers_read_hdf_table | 8.0763 | 7.9550 | 1.0153 | frame_mult_st | 4.3587 | 4.2930 | 1.0153 | index_int64_union | 80.1387 | 78.9240 | 1.0154 | frame_ctor_dtindex_Second(2) | 1.1750 | 1.1570 | 1.0155 | read_store_table | 2.8489 | 2.8050 | 1.0157 | packers_write_pickle | 1.5857 | 1.5610 | 1.0158 | concat_empty_frames2 | 0.9160 | 0.9017 | 1.0159 | groupby_sum_booleans | 1.3137 | 1.2930 | 1.0160 | frame_ctor_dtindex_BDay(1) | 1.5063 | 1.4823 | 1.0162 | frame_boolean_row_select | 0.3530 | 0.3474 | 1.0162 | frame_drop_dup_inplace | 3.2127 | 3.1613 | 1.0163 | reshape_unstack_simple | 3.8917 | 3.8293 | 1.0163 | frame_reindex_both_axes | 36.9233 | 36.3230 | 1.0165 | eval_frame_chained_cmp_python_one_thread | 29.3080 | 28.8030 | 1.0175 | frame_ctor_dtindex_BusinessDay(1) | 1.5047 | 1.4786 | 1.0176 | frame_ctor_dtindex_MonthBegin(1) | 1.5567 | 1.5296 | 1.0177 | groupby_pivot_table | 21.6297 | 21.2491 | 1.0179 | packers_read_csv | 45.9370 | 45.1224 | 1.0181 | frame_ctor_dtindex_Minute(1) | 1.1783 | 1.1574 | 1.0181 | frame_assign_timeseries_index | 0.7594 | 0.7456 | 1.0184 | frame_ctor_dtindex_Hour(1) | 1.1830 | 1.1613 | 1.0186 | frame_apply_np_mean | 7.7876 | 7.6451 | 1.0186 | frame_ctor_dtindex_Week(2) | 1.3577 | 1.3327 | 1.0188 | join_dataframe_integer_2key | 6.2293 | 6.1120 | 1.0192 | frame_ctor_dtindex_Day(2) | 1.1823 | 1.1594 | 1.0198 | frame_ctor_dtindex_MonthEnd(1) | 1.5797 | 1.5487 | 1.0200 | frame_ctor_dtindex_BDay(2) | 1.5517 | 1.5200 | 1.0209 | frame_ctor_dtindex_Milli(1) | 1.1757 | 1.1516 | 1.0209 | frame_nonunique_unequal | 0.0116 | 0.0114 | 1.0210 | frame_ctor_dtindex_QuarterBegin(1) | 1.5827 | 1.5500 | 1.0211 | groupby_multi_size | 28.9613 | 28.3550 | 1.0214 | groupby_frame_cython_many_columns | 4.9940 | 4.8884 | 1.0216 | frame_ctor_dtindex_Micro(1) | 1.1853 | 1.1601 | 1.0218 | frame_ctor_dtindex_BMonthEnd(2) | 1.5763 | 1.5426 | 1.0218 | frame_apply_pass_thru | 7.3377 | 7.1793 | 1.0221 | frame_ctor_dtindex_BQuarterEnd(1) | 1.6003 | 1.5653 | 1.0224 | frame_apply_axis_1 | 120.0833 | 117.4310 | 1.0226 | groupby_apply_dict_return | 45.8323 | 44.8173 | 1.0226 | stats_rank2d_axis0_average | 24.7316 | 24.1727 | 1.0231 | eval_frame_add_python_one_thread | 14.2097 | 13.8873 | 1.0232 | frame_ctor_dtindex_Milli(2) | 1.1817 | 1.1543 | 1.0237 | frame_ctor_dtindex_BMonthEnd(1) | 1.5803 | 1.5433 | 1.0240 | eval_frame_chained_cmp_all_threads | 27.4877 | 26.8327 | 1.0244 | merge_2intkey_nosort | 17.2467 | 16.8300 | 1.0248 | reshape_stack_simple | 4.1796 | 4.0740 | 1.0259 | join_dataframe_index_multi | 21.3153 | 20.7717 | 1.0262 | frame_ctor_dtindex_Micro(2) | 1.1817 | 1.1510 | 1.0267 | frame_ctor_dtindex_Hour(2) | 1.1916 | 1.1603 | 1.0270 | series_value_counts_int64 | 2.8003 | 2.7253 | 1.0275 | ctor_index_array_string | 0.0264 | 0.0257 | 1.0279 | join_dataframe_index_single_key_bigger | 8.1437 | 7.9193 | 1.0283 | eval_frame_mult_one_thread | 11.1399 | 10.8213 | 1.0294 | frame_ctor_dtindex_Nano(1) | 1.5333 | 1.4884 | 1.0302 | stats_rank2d_axis1_average | 14.6964 | 14.2643 | 1.0303 | strings_extract | 51.7747 | 50.2373 | 1.0306 | frame_ctor_dtindex_Second(1) | 1.1846 | 1.1493 | 1.0307 | frame_ctor_dtindex_Day(1) | 1.1847 | 1.1490 | 1.0311 | frame_interpolate_some_good_infer | 4.6221 | 4.4823 | 1.0312 | reindex_frame_level_align | 0.8833 | 0.8560 | 1.0319 | index_str_boolean_indexer | 13.3120 | 12.8977 | 1.0321 | write_store_table_dc | 130.1520 | 126.0629 | 1.0324 | datetime_index_union | 0.0943 | 0.0913 | 1.0331 | frame_float_equal | 4.0623 | 3.9303 | 1.0336 | eval_frame_mult_python_one_thread | 14.3324 | 13.8580 | 1.0342 | unstack_sparse_keyspace | 2.0620 | 1.9930 | 1.0346 | frame_iteritems | 45.7920 | 44.2540 | 1.0348 | replace_replacena | 1.4980 | 1.4463 | 1.0357 | frame_ctor_dtindex_Nano(2) | 1.5437 | 1.4893 | 1.0365 | groupby_frame_apply_overhead | 12.6357 | 12.1877 | 1.0368 | dti_reset_index | 0.3080 | 0.2970 | 1.0372 | frame_insert_500_columns_end | 140.5284 | 135.4481 | 1.0375 | timeseries_1min_5min_mean | 0.8033 | 0.7733 | 1.0388 | frame_constructor_ndarray | 0.0696 | 0.0670 | 1.0391 | frame_ctor_list_of_dict | 87.4960 | 84.1997 | 1.0391 | timeseries_1min_5min_ohlc | 0.8464 | 0.8144 | 1.0393 | frame_object_equal | 4.7763 | 4.5954 | 1.0394 | eval_frame_add_python | 14.3046 | 13.7597 | 1.0396 | groupby_multi_series_op | 16.9507 | 16.2987 | 1.0400 | frame_ctor_dtindex_BusinessDay(2) | 1.5804 | 1.5183 | 1.0409 | eval_frame_add_all_threads | 11.1097 | 10.6707 | 1.0411 | lib_fast_zip_fillna | 14.5430 | 13.9600 | 1.0418 | frame_insert_100_columns_begin | 28.9090 | 27.7313 | 1.0425 | timeseries_infer_freq | 10.1013 | 9.6840 | 1.0431 | packers_read_pack | 2.9567 | 2.8323 | 1.0439 | series_constructor_ndarray | 0.0244 | 0.0234 | 1.0442 | packers_write_hdf_store | 7.0473 | 6.7417 | 1.0453 | write_csv_standard | 49.6840 | 47.5244 | 1.0454 | eval_frame_add_one_thread | 11.1063 | 10.5980 | 1.0480 | eval_frame_mult_all_threads | 11.1907 | 10.6657 | 1.0492 | frame_dropna_axis0_any | 29.7093 | 28.2160 | 1.0529 | groupby_frame_median | 7.6153 | 7.2270 | 1.0537 | datamatrix_getitem_scalar | 0.0123 | 0.0117 | 1.0544 | concat_small_frames | 25.4246 | 24.1093 | 1.0546 | frame_getitem_single_column2 | 41.1553 | 39.0020 | 1.0552 | groupby_multi_different_functions | 14.6806 | 13.8963 | 1.0564 | groupby_frame_singlekey_integer | 3.0946 | 2.9283 | 1.0568 | stats_rank_pct_average | 31.7230 | 30.0117 | 1.0570 | groupby_transform | 246.0516 | 232.6787 | 1.0575 | frame_isnull | 1.4200 | 1.3426 | 1.0577 | match_strings | 0.5364 | 0.5070 | 1.0578 | dataframe_getitem_scalar | 0.0123 | 0.0116 | 1.0616 | period_setitem | 177.3860 | 166.9664 | 1.0624 | frame_get_dtype_counts | 0.1223 | 0.1150 | 1.0636 | frame_getitem_single_column | 41.5934 | 39.0896 | 1.0641 | frame_ctor_nested_dict_int64 | 109.4526 | 102.7773 | 1.0649 | frame_float_unequal | 0.0103 | 0.0097 | 1.0656 | frame_object_unequal | 0.0103 | 0.0097 | 1.0656 | frame_to_string_floats | 46.0573 | 43.1906 | 1.0664 | frame_apply_ref_by_name | 17.2317 | 16.1510 | 1.0669 | frame_repr_tall | 31.5730 | 29.3200 | 1.0768 | series_xs_mi_ix | 0.4504 | 0.4141 | 1.0877 | series_ctor_from_dict | 3.8314 | 3.5153 | 1.0899 | frame_sort_index_by_columns | 50.2450 | 45.7457 | 1.0984 | timeseries_to_datetime_iso8601 | 6.5810 | 5.9790 | 1.1007 | packers_read_json | 61.9729 | 55.7957 | 1.1107 | frame_iteritems_cached | 0.8656 | 0.7780 | 1.1127 | datetimeindex_add_offset | 0.3003 | 0.2680 | 1.1207 | frame_fancy_lookup | 5.1777 | 4.6163 | 1.1216 | timeseries_timestamp_tzinfo_cons | 0.0210 | 0.0184 | 1.1429 | packers_read_json_date_index | 63.5277 | 54.9497 | 1.1561 | frame_xs_mi_ix | 0.4387 | 0.3637 | 1.2063 | frame_get_numeric_data | 0.1547 | 0.1163 | 1.3292 | concat_series_axis1 | 138.7973 | 104.2747 | 1.3311 | dti_reset_index_tz | 18.7047 | 13.6313 | 1.3722 | read_store_table_mixed | 14.7463 | 7.1599 | 2.0596 | panel_shift | 310.8416 | 0.0667 | 4661.8510 | ------------------------------------------------------------------------------- Test name | head[ms] | base[ms] | ratio | ------------------------------------------------------------------------------- 
@jreback
Copy link
Contributor

jreback commented May 2, 2014

ok, pls rebase to master and then rerun. some of these outliers have already been fixed. need to narrow down your changes.

@dbew
Copy link
Contributor Author

dbew commented May 2, 2014

Updated results:

*** Processing results... *** Invoked with : --ncalls: 3 --repeats: 3 ------------------------------------------------------------------------------- Test name | head[ms] | base[ms] | ratio | ------------------------------------------------------------------------------- strings_contains_few_noregex | 3.0839 | 6.7180 | 0.4591 | timeseries_custom_bday_incr_n | 0.0380 | 0.0746 | 0.5091 | strings_get | 3.5727 | 6.8123 | 0.5244 | strings_pad | 5.8757 | 10.9910 | 0.5346 | timeseries_asof_single | 0.0450 | 0.0833 | 0.5401 | strings_lstrip | 5.5056 | 10.1250 | 0.5438 | strings_contains_many_noregex | 3.2097 | 5.8924 | 0.5447 | dataframe_resample_mean_string | 3.3230 | 6.0844 | 0.5462 | timeseries_slice_minutely | 0.0904 | 0.1624 | 0.5565 | strings_upper | 4.5164 | 8.1127 | 0.5567 | timeseries_custom_bmonthend_incr | 0.1450 | 0.2557 | 0.5673 | datetimeindex_unique | 0.1427 | 0.2503 | 0.5698 | timeseries_custom_bmonthend_incr_n | 0.1627 | 0.2844 | 0.5721 | reshape_stack_simple | 2.6233 | 4.5704 | 0.5740 | strings_contains_few | 8.8734 | 15.4594 | 0.5740 | strings_contains_many | 9.0793 | 15.5680 | 0.5832 | stat_ops_level_frame_sum | 4.4587 | 7.5237 | 0.5926 | strings_get_dummies | 80.9317 | 136.4857 | 0.5930 | melt_dataframe | 3.0087 | 5.0544 | 0.5953 | frame_dtypes | 0.1210 | 0.2020 | 0.5987 | unstack_sparse_keyspace | 2.0330 | 3.3666 | 0.6039 | timeseries_timestamp_tzinfo_cons | 0.0214 | 0.0354 | 0.6045 | stat_ops_frame_mean_float_axis_1 | 5.2710 | 8.6456 | 0.6097 | stat_ops_frame_mean_int_axis_1 | 5.5113 | 9.0224 | 0.6108 | stat_ops_frame_mean_int_axis_0 | 4.9963 | 8.1543 | 0.6127 | timestamp_series_compare | 2.8160 | 4.5760 | 0.6154 | strings_strip | 5.9843 | 9.6450 | 0.6205 | timeseries_1min_5min_ohlc | 0.8980 | 1.4410 | 0.6232 | timeseries_to_datetime_YYYYMMDD | 11.5770 | 18.5527 | 0.6240 | strings_slice | 3.4233 | 5.3993 | 0.6340 | reshape_unstack_simple | 3.7550 | 5.9183 | 0.6345 | strings_extract | 52.0113 | 81.2927 | 0.6398 | stat_ops_series_std | 0.8523 | 1.3207 | 0.6454 | frame_mask_bools | 13.4837 | 20.8767 | 0.6459 | stats_rank_average | 27.6673 | 41.7124 | 0.6633 | strings_startswith | 5.8913 | 8.7547 | 0.6729 | frame_reindex_upcast | 8.4007 | 12.2183 | 0.6875 | stats_rank2d_axis1_average | 14.6294 | 21.1090 | 0.6930 | strings_join_split | 46.4450 | 65.9433 | 0.7043 | strings_replace | 21.4373 | 30.0016 | 0.7145 | frame_shift_axis0 | 16.8144 | 23.2413 | 0.7235 | dataframe_resample_max_numpy | 2.1970 | 2.9570 | 0.7430 | dti_reset_index_tz | 17.5427 | 22.7284 | 0.7718 | datetimeindex_infer_dst | 4.1263 | 5.3276 | 0.7745 | period_setitem | 171.9943 | 221.7847 | 0.7755 | dataframe_resample_min_numpy | 2.1863 | 2.7760 | 0.7876 | stats_rank2d_axis0_average | 24.6696 | 31.2590 | 0.7892 | frame_ctor_dtindex_YearBeginx2 | 1.5020 | 1.8454 | 0.8140 | stat_ops_level_frame_sum_multiple | 10.1063 | 12.2580 | 0.8245 | stats_rank_pct_average_old | 35.0503 | 41.8840 | 0.8368 | timeseries_add_irregular | 21.5540 | 25.7260 | 0.8378 | strings_lower | 4.7184 | 5.5744 | 0.8464 | frame_ctor_dtindex_CDayx2 | 1.7547 | 2.0657 | 0.8494 | stats_rank_pct_average | 29.5486 | 34.5767 | 0.8546 | stats_corr_spearman | 95.6997 | 111.5180 | 0.8582 | strings_findall | 10.3667 | 11.7386 | 0.8831 | timeseries_custom_bday_incr | 0.0234 | 0.0260 | 0.8991 | frame_add_no_ne | 4.3364 | 4.8210 | 0.8995 | frame_ctor_dtindex_CBMonthBeginx2 | 2.7023 | 2.9864 | 0.9049 | stat_ops_frame_sum_int_axis_1 | 5.1170 | 5.6287 | 0.9091 | frame_ctor_dtindex_BMonthBeginx1 | 1.7606 | 1.9357 | 0.9096 | frame_interpolate_some_good | 2.4556 | 2.6913 | 0.9124 | frame_fancy_lookup_all | 14.0350 | 15.3426 | 0.9148 | strings_count | 9.4283 | 10.2317 | 0.9215 | frame_iteritems_cached | 0.7803 | 0.8411 | 0.9278 | stat_ops_frame_sum_int_axis_0 | 4.9110 | 5.2556 | 0.9344 | stat_ops_frame_sum_float_axis_1 | 4.9609 | 5.3010 | 0.9358 | frame_mult_no_ne | 4.2823 | 4.5724 | 0.9366 | frame_add | 4.5340 | 4.8350 | 0.9378 | strings_cat | 1.3813 | 1.4726 | 0.9380 | stat_ops_frame_sum_float_axis_0 | 5.1764 | 5.5137 | 0.9388 | stat_ops_level_series_sum_multiple | 8.7320 | 9.2983 | 0.9391 | timeseries_asof_nan | 8.7926 | 9.3346 | 0.9419 | datetimeindex_add_offset | 0.2974 | 0.3153 | 0.9433 | stat_ops_frame_mean_float_axis_0 | 5.2350 | 5.5360 | 0.9456 | stat_ops_level_series_sum | 3.1474 | 3.3236 | 0.9470 | timeseries_asof | 9.3840 | 9.8697 | 0.9508 | strings_center | 5.8977 | 6.1994 | 0.9513 | frame_mult_st | 4.4227 | 4.6487 | 0.9514 | stats_rank_average_int | 23.0290 | 24.1864 | 0.9521 | timeseries_to_datetime_iso8601 | 5.9800 | 6.2594 | 0.9554 | frame_to_html_mixed | 341.5670 | 356.2803 | 0.9587 | series_ctor_from_dict | 3.8193 | 3.9709 | 0.9618 | frame_float_equal | 3.8980 | 4.0476 | 0.9630 | frame_to_csv_date_formatting | 20.2520 | 20.9593 | 0.9663 | series_timestamp_compare | 2.8330 | 2.9291 | 0.9672 | read_csv_comment2 | 16.9217 | 17.4944 | 0.9673 | replace_replacena | 1.4757 | 1.5226 | 0.9692 | frame_interpolate | 108.3690 | 111.7774 | 0.9695 | dataframe_resample_mean_numpy | 3.2686 | 3.3693 | 0.9701 | series_string_vector_slice | 236.7980 | 244.0760 | 0.9702 | timeseries_large_lookup_value | 0.0340 | 0.0350 | 0.9705 | replace_fillna | 2.0580 | 2.1194 | 0.9711 | timeseries_timestamp_downsample_mean | 5.8990 | 6.0689 | 0.9720 | timeseries_is_month_start | 3.4304 | 3.5230 | 0.9737 | strings_len | 3.0134 | 3.0947 | 0.9737 | frame_boolean_row_select | 0.3816 | 0.3916 | 0.9744 | frame_ctor_dtindex_YearBeginx1 | 1.4900 | 1.5283 | 0.9749 | eval_frame_add_python | 14.6124 | 14.9820 | 0.9753 | frame_isnull | 1.4197 | 1.4547 | 0.9760 | dataframe_getitem_scalar | 0.0137 | 0.0140 | 0.9773 | sparse_series_to_frame | 133.2117 | 136.2397 | 0.9778 | dti_reset_index | 0.4557 | 0.4659 | 0.9780 | timeseries_period_downsample_mean | 13.2527 | 13.5481 | 0.9782 | frame_html_repr_trunc_mi | 57.4583 | 58.7227 | 0.9785 | stats_rolling_mean | 1.5434 | 1.5750 | 0.9799 | groupby_frame_cython_many_columns | 5.1790 | 5.2787 | 0.9811 | strings_encode_decode | 0.3307 | 0.3370 | 0.9811 | query_datetime_series | 16.0324 | 16.3174 | 0.9825 | frame_ctor_dtindex_BQuarterBeginx1 | 1.7693 | 1.7997 | 0.9831 | dtindex_from_series_ctor | 0.0190 | 0.0193 | 0.9835 | groupby_first | 4.2227 | 4.2926 | 0.9837 | frame_xs_row | 0.0629 | 0.0640 | 0.9839 | packers_write_json | 105.7423 | 107.4087 | 0.9845 | frame_multi_and | 38.2530 | 38.8287 | 0.9852 | groupby_multi_different_numpy_functions | 13.9924 | 14.2024 | 0.9852 | groupby_pivot_table | 21.0410 | 21.3550 | 0.9853 | frame_assign_timeseries_index | 0.8120 | 0.8240 | 0.9854 | eval_frame_mult_python_one_thread | 14.5814 | 14.7947 | 0.9856 | match_strings | 0.5030 | 0.5103 | 0.9857 | frame_ctor_dtindex_CBMonthBeginx1 | 3.0754 | 3.1190 | 0.9860 | packers_write_json_date_index | 122.2076 | 123.8867 | 0.9864 | series_getitem_pos_slice | 0.0741 | 0.0750 | 0.9873 | frame_iteritems | 45.2370 | 45.8160 | 0.9874 | sparse_frame_constructor | 10.4864 | 10.6203 | 0.9874 | frame_insert_100_columns_begin | 55.4480 | 56.1310 | 0.9878 | ctor_index_array_string | 0.0263 | 0.0266 | 0.9881 | frame_apply_user_func | 139.8513 | 141.4757 | 0.9885 | index_float64_mul | 1.4517 | 1.4683 | 0.9886 | packers_read_hdf_table | 29.1037 | 29.4377 | 0.9887 | packers_read_csv | 161.4536 | 163.2973 | 0.9887 | frame_nonunique_equal | 4.5869 | 4.6390 | 0.9888 | timeseries_1min_5min_mean | 0.8257 | 0.8350 | 0.9889 | datetime_index_union | 0.0943 | 0.0954 | 0.9892 | frame_apply_lambda_mean | 7.5120 | 7.5936 | 0.9893 | frame_apply_pass_thru | 6.3200 | 6.3880 | 0.9894 | frame_iloc_big | 0.2366 | 0.2390 | 0.9900 | query_with_boolean_selection | 25.5100 | 25.7620 | 0.9902 | frame_ctor_dtindex_BusinessDayx1 | 1.6356 | 1.6517 | 0.9903 | frame_ctor_dtindex_YearEndx1 | 1.5016 | 1.5163 | 0.9903 | frame_ctor_dtindex_CDayx1 | 1.7577 | 1.7747 | 0.9904 | groupby_first_float32 | 4.1970 | 4.2370 | 0.9906 | index_datetime_union | 14.9794 | 15.1220 | 0.9906 | frame_multi_and_st | 38.3163 | 38.6810 | 0.9906 | frame_to_csv2 | 117.7376 | 118.8267 | 0.9908 | datetimeindex_converter | 1.0386 | 1.0480 | 0.9911 | frame_mask_floats | 5.7693 | 5.8204 | 0.9912 | frame_ctor_dtindex_Dayx2 | 1.3157 | 1.3273 | 0.9913 | frame_ctor_dtindex_Millix2 | 1.3157 | 1.3270 | 0.9914 | join_dataframe_index_multi | 21.9453 | 22.1334 | 0.9915 | packers_write_pickle | 73.1480 | 73.7740 | 0.9915 | merge_2intkey_nosort | 16.7373 | 16.8684 | 0.9922 | frame_ctor_dtindex_MonthEndx1 | 1.7393 | 1.7526 | 0.9924 | eval_frame_mult_python | 14.5744 | 14.6830 | 0.9926 | frame_interpolate_some_good_infer | 4.5240 | 4.5563 | 0.9929 | frame_ctor_dtindex_CustomBusinessDayx2 | 1.7436 | 1.7560 | 0.9929 | frame_apply_axis_1 | 133.7144 | 134.6323 | 0.9932 | read_csv_thou_vb | 17.2774 | 17.3943 | 0.9933 | frame_ctor_dtindex_Easterx2 | 1.5453 | 1.5557 | 0.9934 | frame_ctor_dtindex_Easterx1 | 1.5577 | 1.5677 | 0.9936 | groupby_multi_series_op | 16.2700 | 16.3727 | 0.9937 | frame_to_string_floats | 43.7256 | 43.9881 | 0.9940 | frame_ctor_dtindex_YearEndx2 | 1.4984 | 1.5073 | 0.9941 | frame_ctor_dtindex_BQuarterBeginx2 | 1.7587 | 1.7687 | 0.9943 | frame_ctor_dtindex_BusinessDayx2 | 1.7076 | 1.7173 | 0.9944 | series_drop_duplicates_string | 0.8313 | 0.8360 | 0.9944 | packers_write_hdf_store | 73.2577 | 73.6700 | 0.9944 | groupby_last_float32 | 4.3493 | 4.3734 | 0.9945 | frame_ctor_dtindex_BQuarterEndx1 | 1.7533 | 1.7629 | 0.9945 | frame_ctor_dtindex_Nanox2 | 1.7053 | 1.7144 | 0.9947 | eval_frame_add_python_one_thread | 14.5857 | 14.6613 | 0.9948 | eval_frame_add_all_threads | 11.6663 | 11.7257 | 0.9949 | index_str_boolean_series_indexer | 12.8273 | 12.8916 | 0.9950 | timeseries_infer_freq | 9.6690 | 9.7173 | 0.9950 | index_datetime_intersection | 15.0477 | 15.1207 | 0.9952 | reindex_frame_level_reindex | 1.3490 | 1.3554 | 0.9953 | strings_repeat | 5.4790 | 5.5050 | 0.9953 | query_datetime_index | 14.6469 | 14.7150 | 0.9954 | frame_fillna_many_columns_pad | 13.1270 | 13.1876 | 0.9954 | frame_ctor_dtindex_Dayx1 | 1.3287 | 1.3347 | 0.9955 | groupby_series_nth | 1.5916 | 1.5984 | 0.9958 | frame_repr_wide | 18.3157 | 18.3930 | 0.9958 | frame_ctor_dtindex_BDayx1 | 1.6603 | 1.6673 | 0.9958 | groupby_last | 4.3643 | 4.3827 | 0.9958 | dataframe_resample_min_string | 2.1600 | 2.1687 | 0.9960 | packers_write_hdf_table | 61.0677 | 61.3124 | 0.9960 | frame_ctor_dtindex_CustomBusinessDayx1 | 1.7477 | 1.7546 | 0.9961 | eval_frame_chained_cmp_all_threads | 28.1954 | 28.3047 | 0.9961 | frame_ctor_dtindex_BYearEndx2 | 1.7533 | 1.7600 | 0.9962 | frame_ctor_dtindex_QuarterEndx1 | 1.7430 | 1.7496 | 0.9962 | groupby_frame_apply_overhead | 12.2677 | 12.3140 | 0.9962 | read_store_table | 2.9016 | 2.9124 | 0.9963 | merge_2intkey_sort | 44.8410 | 44.9887 | 0.9967 | frame_ctor_dtindex_Microx1 | 1.3297 | 1.3340 | 0.9967 | eval_frame_and_python_one_thread | 50.0163 | 50.1603 | 0.9971 | frame_ctor_dtindex_MonthBeginx2 | 1.7237 | 1.7286 | 0.9971 | frame_ctor_dtindex_QuarterBeginx2 | 1.7166 | 1.7214 | 0.9972 | sort_level_one | 12.8860 | 12.9213 | 0.9973 | frame_drop_dup_inplace | 3.1037 | 3.1117 | 0.9974 | groupby_multi_cython | 18.0730 | 18.1190 | 0.9975 | datetimeindex_normalize | 3.1407 | 3.1486 | 0.9975 | frame_ctor_dtindex_Secondx1 | 1.3307 | 1.3336 | 0.9978 | frame_ctor_dtindex_BDayx2 | 1.7060 | 1.7097 | 0.9979 | eval_frame_mult_one_thread | 11.6963 | 11.7186 | 0.9981 | index_float64_div | 1.9277 | 1.9313 | 0.9981 | join_dataframe_integer_key | 2.0067 | 2.0103 | 0.9982 | frame_ctor_dtindex_BMonthEndx2 | 1.7424 | 1.7453 | 0.9983 | frame_dropna_axis1_any | 185.3150 | 185.6157 | 0.9984 | frame_repr_tall | 30.0153 | 30.0639 | 0.9984 | packers_read_hdf_store | 32.5494 | 32.5960 | 0.9986 | join_dataframe_index_single_key_small | 8.4130 | 8.4243 | 0.9987 | eval_frame_mult_all_threads | 11.6960 | 11.7114 | 0.9987 | join_non_unique_equal | 0.7907 | 0.7916 | 0.9988 | concat_series_axis1 | 129.6107 | 129.7523 | 0.9989 | append_frame_single_mixed | 1.7083 | 1.7097 | 0.9992 | series_value_counts_strings | 9.3671 | 9.3740 | 0.9993 | write_store_table_dc | 127.2930 | 127.3473 | 0.9996 | join_dataframe_integer_2key | 6.0434 | 6.0457 | 0.9996 | index_float64_boolean_indexer | 6.1760 | 6.1773 | 0.9998 | eval_frame_and_python_one_thread | 50.1494 | 50.1603 | 0.9998 | frame_ctor_dtindex_MonthEndx2 | 1.7413 | 1.7416 | 0.9998 | series_constructor_ndarray | 0.0257 | 0.0257 | 1.0000 | frame_float_unequal | 0.0103 | 0.0103 | 1.0000 | frame_apply_np_mean | 8.0179 | 8.0167 | 1.0002 | groupby_frame_singlekey_integer | 3.2136 | 3.2124 | 1.0004 | frame_ctor_dtindex_Millix1 | 1.3227 | 1.3220 | 1.0005 | write_store_table | 34.3233 | 34.3047 | 1.0005 | append_frame_single_homogenous | 1.2353 | 1.2346 | 1.0006 | frame_ctor_dtindex_BYearBeginx2 | 1.7387 | 1.7377 | 1.0006 | eval_frame_and_all_threads | 35.1970 | 35.1670 | 1.0009 | frame_ctor_dtindex_QuarterBeginx1 | 1.7357 | 1.7340 | 1.0010 | groupby_series_simple_cython | 256.2919 | 255.9837 | 1.0012 | frame_dropna_axis1_all | 227.9280 | 227.6514 | 1.0012 | frame_html_repr_trunc_si | 44.6594 | 44.6033 | 1.0013 | frame_from_records_generator | 69.8960 | 69.8057 | 1.0013 | frame_ctor_dtindex_BYearBeginx1 | 1.7503 | 1.7480 | 1.0013 | panel_from_dict_two_different_indexes | 97.5790 | 97.4093 | 1.0017 | datetime_index_intersection | 0.3820 | 0.3813 | 1.0019 | frame_object_equal | 4.6163 | 4.6076 | 1.0019 | frame_ctor_dtindex_BYearEndx1 | 1.7627 | 1.7593 | 1.0019 | join_dataframe_index_single_key_bigger | 9.2576 | 9.2390 | 1.0020 | indexing_panel_subset | 1.2180 | 1.2153 | 1.0022 | indexing_dataframe_boolean_rows_object | 0.7217 | 0.7200 | 1.0023 | frame_ctor_dtindex_BQuarterEndx2 | 1.7567 | 1.7524 | 1.0024 | reindex_fillna_backfill_float32 | 0.4030 | 0.4020 | 1.0026 | read_csv_standard | 11.2620 | 11.2320 | 1.0027 | groupby_multi_size | 27.8211 | 27.7433 | 1.0028 | reindex_frame_level_align | 1.4017 | 1.3977 | 1.0028 | read_csv_vb | 20.5160 | 20.4570 | 1.0029 | index_float64_boolean_series_indexer | 6.2124 | 6.1940 | 1.0030 | frame_ctor_dtindex_Minutex2 | 1.3234 | 1.3193 | 1.0031 | eval_frame_chained_cmp_python_one_thread | 29.5147 | 29.4180 | 1.0033 | frame_ctor_dtindex_Weekx1 | 1.5033 | 1.4984 | 1.0033 | groupby_sum_booleans | 1.4623 | 1.4571 | 1.0036 | timedelta_convert_int | 0.2630 | 0.2620 | 1.0036 | groupby_apply_dict_return | 49.7907 | 49.6083 | 1.0037 | read_csv_infer_datetime_format_custom | 12.3880 | 12.3390 | 1.0040 | join_dataframe_index_single_key_bigger_sort | 18.6964 | 18.6216 | 1.0040 | write_store_table_panel | 46.5563 | 46.3687 | 1.0040 | frame_ctor_dtindex_Hourx2 | 1.3320 | 1.3266 | 1.0041 | frame_fancy_lookup | 5.6787 | 5.6553 | 1.0041 | reindex_multiindex | 1.6777 | 1.6707 | 1.0042 | frame_reindex_both_axes_ix | 37.3104 | 37.1517 | 1.0043 | eval_frame_chained_cmp_python_one_thread | 29.6170 | 29.4897 | 1.0043 | panel_from_dict_same_index | 71.1203 | 70.8080 | 1.0044 | index_str_boolean_indexer | 12.9333 | 12.8750 | 1.0045 | sort_level_zero | 12.9443 | 12.8847 | 1.0046 | groupby_frame_nth | 1.7830 | 1.7746 | 1.0047 | frame_from_records_generator_nrows | 1.1207 | 1.1153 | 1.0048 | frame_apply_ref_by_name | 19.1377 | 19.0440 | 1.0049 | frame_reindex_axis0 | 84.6163 | 84.1930 | 1.0050 | frame_get_numeric_data | 0.1963 | 0.1953 | 1.0053 | series_align_irregular_string | 83.5923 | 83.1504 | 1.0053 | groupby_transform | 206.9844 | 205.8830 | 1.0053 | frame_ctor_dtindex_Microx2 | 1.3327 | 1.3254 | 1.0055 | concat_empty_frames1 | 1.0800 | 1.0740 | 1.0055 | eval_frame_add_one_thread | 11.6731 | 11.6084 | 1.0056 | frame_iloc_dups | 0.3553 | 0.3533 | 1.0056 | frame_constructor_ndarray | 0.1123 | 0.1117 | 1.0057 | packers_read_pickle | 52.9459 | 52.6300 | 1.0060 | frame_loc_dups | 1.0667 | 1.0600 | 1.0063 | frame_dropna_axis0_any | 28.6387 | 28.4590 | 1.0063 | read_store_mixed | 5.2750 | 5.2416 | 1.0064 | index_int64_intersection | 26.0743 | 25.9087 | 1.0064 | frame_insert_500_columns_end | 128.4716 | 127.6430 | 1.0065 | reindex_daterange_backfill | 0.9263 | 0.9201 | 1.0068 | read_csv_infer_datetime_format_iso8601 | 2.4370 | 2.4203 | 1.0069 | frame_ctor_dtindex_QuarterEndx2 | 1.7513 | 1.7393 | 1.0069 | read_store_table_panel | 24.0350 | 23.8677 | 1.0070 | frame_sort_index_by_columns | 47.2856 | 46.9564 | 1.0070 | series_xs_mi_ix | 0.4190 | 0.4160 | 1.0071 | frame_ctor_dtindex_MonthBeginx1 | 1.7393 | 1.7270 | 1.0071 | series_drop_duplicates_int | 0.8980 | 0.8914 | 1.0074 | read_csv_infer_datetime_format_ymd | 2.9010 | 2.8796 | 1.0074 | groupby_multi_python | 168.5570 | 167.3143 | 1.0074 | timeseries_sort_index | 10.1240 | 10.0460 | 1.0078 | frame_ctor_dtindex_Hourx1 | 1.3377 | 1.3263 | 1.0086 | indexing_dataframe_boolean_rows | 0.4700 | 0.4659 | 1.0087 | concat_small_frames | 33.2016 | 32.9080 | 1.0089 | frame_reindex_both_axes | 37.3250 | 36.9910 | 1.0090 | concat_empty_frames2 | 1.0813 | 1.0714 | 1.0093 | lib_fast_zip_fillna | 14.6756 | 14.5384 | 1.0094 | groupby_frame_median | 7.5857 | 7.5130 | 1.0097 | groupby_indices | 8.0087 | 7.9310 | 1.0098 | read_parse_dates_iso8601 | 1.8150 | 1.7973 | 1.0099 | frame_fillna_inplace | 10.1776 | 10.0760 | 1.0101 | read_table_multiple_date | 198.8780 | 196.8627 | 1.0102 | panel_from_dict_equiv_indexes | 72.6950 | 71.9463 | 1.0104 | plot_timeseries_period | 60.9744 | 60.3320 | 1.0106 | dataframe_resample_max_string | 2.4630 | 2.4360 | 1.0111 | series_value_counts_int64 | 2.7550 | 2.7246 | 1.0111 | frame_ctor_dtindex_Secondx2 | 1.3597 | 1.3443 | 1.0115 | frame_xs_mi_ix | 0.4677 | 0.4624 | 1.0115 | frame_ctor_dtindex_Nanox1 | 1.7250 | 1.7053 | 1.0116 | frame_ctor_dtindex_Minutex1 | 1.3284 | 1.3130 | 1.0117 | frame_ctor_nested_dict | 82.8797 | 81.9160 | 1.0118 | series_getitem_label_slice | 0.0887 | 0.0877 | 1.0118 | frame_ctor_nested_dict_int64 | 119.7273 | 118.3310 | 1.0118 | frame_drop_duplicates | 21.0427 | 20.7936 | 1.0120 | groupby_simple_compress_timing | 37.8617 | 37.4050 | 1.0122 | reindex_fillna_pad_float32 | 0.4150 | 0.4100 | 1.0122 | write_store | 5.8053 | 5.7334 | 1.0125 | groupby_frame_apply | 60.9493 | 60.1480 | 1.0133 | index_int64_union | 80.1086 | 79.0524 | 1.0134 | frame_ctor_dtindex_Weekx2 | 1.5167 | 1.4963 | 1.0136 | frame_ctor_dtindex_BMonthBeginx2 | 1.7690 | 1.7447 | 1.0139 | read_store_table_mixed | 14.7333 | 14.5220 | 1.0146 | frame_ctor_list_of_dict | 88.9263 | 87.6313 | 1.0148 | groupby_multi_different_functions | 14.3790 | 14.1673 | 1.0149 | frame_drop_dup_na_inplace | 2.9083 | 2.8654 | 1.0150 | read_table_multiple_date_baseline | 89.1943 | 87.8750 | 1.0150 | indexing_dataframe_boolean | 9.0771 | 8.9347 | 1.0159 | frame_multi_and_no_ne | 95.2737 | 93.7663 | 1.0161 | frame_reindex_columns | 0.4200 | 0.4133 | 1.0162 | reindex_fillna_pad | 0.4527 | 0.4453 | 1.0166 | frame_drop_duplicates_na | 21.2820 | 20.9330 | 1.0167 | panel_from_dict_all_different_indexes | 123.5680 | 121.4890 | 1.0171 | query_store_table_wide | 11.8176 | 11.6146 | 1.0175 | timestamp_ops_diff1 | 6.7317 | 6.6160 | 1.0175 | timedelta_convert_string | 250.3444 | 245.9966 | 1.0177 | timedelta_convert_string_seconds | 252.7263 | 248.1740 | 1.0183 | panel_shift | 0.1280 | 0.1256 | 1.0190 | index_float64_construct | 49.2547 | 48.2937 | 1.0199 | packers_write_csv | 1730.4146 | 1695.4363 | 1.0206 | write_store_mixed | 15.6893 | 15.3647 | 1.0211 | replace_large_dict | 26282.9837 | 25739.2303 | 1.0211 | frame_to_csv | 154.4927 | 151.2923 | 1.0212 | series_align_int64_index | 30.7666 | 30.1224 | 1.0214 | frame_shift_axis_1 | 35.5467 | 34.7830 | 1.0220 | packers_read_json | 184.5733 | 180.5493 | 1.0223 | packers_read_json_date_index | 174.8106 | 170.8613 | 1.0231 | panel_shift_minor | 0.1273 | 0.1243 | 1.0243 | frame_to_csv_mixed | 255.8787 | 249.6930 | 1.0248 | read_store | 2.3537 | 2.2960 | 1.0251 | frame_ctor_dtindex_BMonthEndx1 | 1.7873 | 1.7430 | 1.0254 | frame_dropna_axis0_all | 55.2347 | 53.8197 | 1.0263 | strings_match | 9.0003 | 8.7657 | 1.0268 | frame_nonunique_unequal | 0.0120 | 0.0117 | 1.0272 | frame_reindex_axis1 | 125.1360 | 121.7307 | 1.0280 | timestamp_ops_diff2 | 19.9153 | 19.3427 | 1.0296 | packers_write_pack | 17.0200 | 16.5123 | 1.0307 | frame_object_unequal | 0.0106 | 0.0103 | 1.0308 | indexing_dataframe_boolean_st | 9.1953 | 8.9120 | 1.0318 | series_align_left_monotonic | 14.9630 | 14.4990 | 1.0320 | lib_fast_zip | 10.9777 | 10.6370 | 1.0320 | frame_getitem_single_column2 | 42.6617 | 41.2857 | 1.0333 | write_store_table_wide | 97.2623 | 94.0527 | 1.0341 | write_csv_standard | 48.5617 | 46.8880 | 1.0357 | frame_get_dtype_counts | 0.1283 | 0.1237 | 1.0379 | write_store_table_mixed | 42.6626 | 41.0730 | 1.0387 | frame_from_series | 0.1417 | 0.1363 | 1.0397 | query_store_table | 6.1806 | 5.9443 | 1.0397 | reindex_fillna_backfill | 0.4667 | 0.4487 | 1.0400 | read_store_table_wide | 16.9506 | 16.2273 | 1.0446 | frame_getitem_single_column | 42.5077 | 40.6383 | 1.0460 | packers_read_pack | 91.2180 | 85.8093 | 1.0630 | frame_add_st | 4.7586 | 4.4723 | 1.0640 | indexing_dataframe_boolean_no_ne | 57.6564 | 54.0160 | 1.0674 | datamatrix_getitem_scalar | 0.0140 | 0.0130 | 1.0732 | frame_ctor_dtindex_CBMonthEndx1 | 4.0640 | 3.7700 | 1.0780 | strings_endswith | 5.8854 | 5.4330 | 1.0833 | strings_rstrip | 5.4647 | 5.0113 | 1.0905 | frame_mult | 5.1136 | 4.6373 | 1.1027 | strings_title | 5.0020 | 4.3960 | 1.1379 | reindex_daterange_pad | 1.5104 | 0.9417 | 1.6039 | frame_ctor_dtindex_CBMonthEndx2 | 7.0704 | 3.7580 | 1.8814 | index_from_series_ctor | 0.0620 | 0.0307 | 2.0207 | ------------------------------------------------------------------------------- Test name | head[ms] | base[ms] | ratio | ------------------------------------------------------------------------------- Ratio < 1.0 means the target commit is faster then the baseline. Seed used: 1234 Target [5aff770] : Fix check in check in pytables code for multiple timezones. Base [2d876be] : Merge pull request #6578 from hayd/groupby_selecte_badcols 
@jreback
Copy link
Contributor

jreback commented May 2, 2014

you get pretty variable results, maybe you are running other things at the same time? usually try to run vbench when nothing else is running (this espectially mucks up the disk i/o ones).

@dbew
Copy link
Contributor Author

dbew commented May 2, 2014

I'll set it going this evening when I leave the office so that it's uninterrupted.

@dbew
Copy link
Contributor Author

dbew commented May 21, 2014

Sorry for the delay with the test figures, other stuff took over at work. I've got the vbench suite running on a dedicated machine now and I've run the tests a couple of times to get a consistent result. The table below shows test name, individual results, baseline test time and mean result.

It looks like there are just a few tests that are significantly slower than the base. Let me know what you think.

 ratio_0 ratio_1 ratio_2 base mean_ratio join_dataframe_index_single_key_small 0.9781 0.8392 0.8974 8.303333 0.904900 eval_frame_add_python 0.7495 0.9982 1.0029 18.134333 0.916867 strings_upper 0.9963 0.8922 0.9455 4.262200 0.944667 packers_write_pack 1.0106 0.9017 0.9339 2.141333 0.948733 strings_lower 0.9876 0.9123 0.9603 4.469233 0.953400 eval_frame_add_python_one_thread 0.8675 0.9934 1.0000 17.155067 0.953633 reshape_pivot_time_series 0.9366 0.9235 1.0009 202.346567 0.953667 packers_write_pickle 1.0241 0.9220 0.9203 1.645767 0.955467 strings_get 0.9738 1.0039 0.9274 3.648400 0.968367 strings_lstrip 0.9841 0.9619 0.9753 4.795067 0.973767 frame_reindex_upcast 0.9633 0.9803 0.9908 9.372367 0.978133 join_dataframe_index_single_key_bigger 0.9658 0.9798 0.9945 8.237433 0.980033 panel_shift 0.9331 1.0064 1.0042 333.244100 0.981233 frame_nonunique_unequal 0.9720 0.9388 1.0342 0.011567 0.981667 strings_slice 1.0259 0.9169 1.0028 3.317200 0.981867 packers_read_pickle 0.9950 0.9803 0.9710 0.799400 0.982100 groupby_frame_apply 0.9877 0.9771 0.9848 58.503800 0.983200 frame_mask_floats 0.9955 0.9978 0.9586 20.550233 0.983967 frame_reindex_both_axes 1.0055 1.0139 0.9344 41.235467 0.984600 frame_get_dtype_counts 0.9777 0.9824 0.9976 0.134900 0.985900 index_str_boolean_series_indexer 0.9869 0.9849 0.9863 14.392533 0.986033 frame_reindex_both_axes_ix 1.0033 0.9857 0.9692 40.946067 0.986067 frame_fillna_many_columns_pad 1.0014 0.9578 0.9996 14.172000 0.986267 eval_frame_mult_python_one_thread 1.0348 0.9285 0.9958 16.965767 0.986367 timeseries_infer_freq 0.9874 0.9871 0.9882 10.643233 0.987567 strings_rstrip 0.9916 0.9660 1.0061 4.634100 0.987900 strings_repeat 0.9857 0.9966 0.9833 5.502233 0.988533 panel_pct_change_items 1.0051 0.9871 0.9742 5527.279633 0.988800 frame_mult 0.9967 1.0013 0.9722 5.071000 0.990067 datetimeindex_infer_dst 1.0058 0.9980 0.9678 4.114767 0.990533 strings_strip 0.9918 0.9675 1.0127 5.218367 0.990667 join_dataframe_index_multi 0.9837 0.9982 0.9903 22.409833 0.990733 series_string_vector_slice 0.9855 0.9676 1.0192 222.652533 0.990767 replace_fillna 0.9930 0.9867 0.9927 4.174933 0.990800 strings_title 1.0019 1.0257 0.9451 4.269467 0.990900 timeseries_custom_bmonthend_incr_n 0.9825 0.9926 0.9978 0.184100 0.990967 strings_startswith 1.0232 0.9592 0.9909 4.972567 0.991100 strings_endswith 1.0187 0.9592 0.9966 4.980367 0.991500 frame_ctor_dtindex_YearBegin(2) 0.9910 0.9814 1.0030 0.556133 0.991800 packers_read_pack 1.0125 0.9794 0.9838 3.333800 0.991900 read_parse_dates_iso8601 1.0008 0.9794 0.9971 1.622833 0.992433 merge_2intkey_sort 1.0138 0.9823 0.9823 44.904067 0.992800 frame_dropna_axis0_any 0.9997 0.9846 0.9942 62.426133 0.992833 frame_loc_dups 0.9977 0.9834 0.9975 0.920000 0.992867 frame_reindex_axis1 0.9797 1.0007 0.9988 602.646667 0.993067 merge_2intkey_nosort 0.9931 0.9846 1.0024 19.022467 0.993367 frame_drop_dup_na_inplace 1.0045 0.9836 0.9940 3.136467 0.994033 stats_rank_average 1.0216 0.9713 0.9904 30.161633 0.994433 frame_fancy_lookup_all 0.9784 1.0010 1.0040 17.522100 0.994467 index_float64_boolean_series_indexer 0.9828 1.0014 1.0003 6.216333 0.994833 reshape_unstack_simple 1.0067 0.9792 0.9990 4.092200 0.994967 series_constructor_ndarray 1.0000 0.9868 1.0000 0.024000 0.995600 reindex_frame_level_align 1.0024 1.0018 0.9830 0.984667 0.995733 eval_frame_and_python_one_thread 0.9929 0.9958 0.9998 47.831300 0.996167 stats_corr_spearman 0.9882 0.9991 1.0012 103.956900 0.996167 frame_html_repr_trunc_si 1.0012 0.9867 1.0009 44.003800 0.996267 groupby_multi_size 0.9830 1.0059 1.0007 29.499767 0.996533 frame_ctor_nested_dict 0.9966 1.0044 0.9887 88.861467 0.996567 strings_join_split 0.9983 0.9848 1.0066 41.455467 0.996567 eval_frame_and_python_one_thread 0.9929 0.9958 1.0011 47.804000 0.996600 stat_ops_level_frame_sum 1.0041 0.9918 0.9940 4.281333 0.996633 join_dataframe_index_single_key_bigger_sort 0.9947 0.9884 1.0072 16.702233 0.996767 eval_frame_and_python_one_thread 0.9929 0.9976 0.9998 47.788733 0.996767 frame_xs_mi_ix 1.0031 0.9817 1.0055 0.434667 0.996767 timeseries_custom_bday_incr_n 0.9676 0.9923 1.0312 0.041200 0.997033 frame_ctor_list_of_dict 1.0000 1.0024 0.9891 91.756633 0.997167 eval_frame_and_python_one_thread 0.9929 0.9976 1.0011 47.761433 0.997200 timeseries_1min_5min_ohlc 0.9997 0.9948 0.9974 0.887400 0.997300 groupby_frame_cython_many_columns 1.0244 1.0057 0.9620 4.700200 0.997367 stat_ops_level_series_sum 0.9974 0.9894 1.0056 3.254733 0.997467 groupby_first_float32 1.0016 0.9931 0.9981 4.423967 0.997600 reindex_multiindex 0.9985 0.9936 1.0010 1.709467 0.997700 frame_mult_st 0.9967 0.9979 0.9988 5.009767 0.997800 groupby_frame_median 0.9959 0.9979 0.9997 7.319500 0.997833 frame_ctor_dtindex_QuarterBegin(2) 1.0023 0.9884 1.0030 0.548000 0.997900 frame_dtypes 0.9965 1.0035 0.9939 0.272767 0.997967 frame_to_string_floats 1.0024 0.9855 1.0062 40.198200 0.998033 indexing_dataframe_boolean 1.0010 1.0000 0.9932 44.523767 0.998067 append_frame_single_mixed 0.9946 0.9959 1.0038 1.475800 0.998100 frame_repr_tall 0.9985 0.9939 1.0022 27.534533 0.998200 indexing_dataframe_boolean_rows 0.9986 0.9914 1.0047 0.507867 0.998233 eval_frame_and_python_one_thread 0.9992 0.9958 0.9998 47.709867 0.998267 groupby_pivot_table 0.9889 1.0083 0.9979 22.059733 0.998367 index_int64_intersection 0.9927 1.0040 0.9986 24.408100 0.998433 strings_replace 0.9815 1.0035 1.0103 20.119367 0.998433 frame_iloc_dups 1.0059 0.9923 0.9972 0.339400 0.998467 eval_frame_chained_cmp_python_one_thread 1.0040 0.9967 0.9947 79.001933 0.998467 dataframe_resample_min_string 0.9998 0.9948 1.0010 2.044100 0.998533 stat_ops_level_series_sum_multiple 0.9941 0.9987 1.0029 9.199833 0.998567 read_csv_comment2 1.0050 0.9997 0.9912 17.402833 0.998633 append_frame_single_homogenous 1.0004 0.9909 1.0048 1.088767 0.998700 eval_frame_and_python_one_thread 0.9992 0.9958 1.0011 47.682567 0.998700 stat_ops_series_std 0.9963 0.9896 1.0102 1.179533 0.998700 strings_contains_many 1.0196 0.9688 1.0079 7.655800 0.998767 stats_rank2d_axis0_average 1.0028 0.9981 0.9955 24.540200 0.998800 packers_write_json_date_index 1.0004 0.9859 1.0101 36.497700 0.998800 groupby_first 1.0080 1.0020 0.9865 4.431467 0.998833 eval_frame_and_python_one_thread 0.9992 0.9976 0.9998 47.667300 0.998867 panel_pct_change_minor 1.0026 1.0004 0.9936 5952.443633 0.998867 frame_isnull 1.0032 0.9976 0.9958 3.515100 0.998867 concat_empty_frames2 0.9979 0.9975 1.0013 0.965233 0.998900 dti_reset_index 1.0000 0.9878 1.0091 0.331667 0.998967 groupby_multi_different_functions 1.0071 1.0031 0.9868 14.187800 0.999000 groupby_multi_different_numpy_functions 0.9915 0.9942 1.0114 14.123700 0.999033 stat_ops_frame_sum_int_axis_0 0.9942 0.9963 1.0068 6.040333 0.999100 read_csv_vb 1.0047 0.9969 0.9960 20.016667 0.999200 eval_frame_and_python_one_thread 0.9992 0.9976 1.0011 47.640000 0.999300 period_setitem 1.0106 1.0043 0.9832 165.527867 0.999367 frame_repr_wide 1.0003 0.9951 1.0028 19.728000 0.999400 read_csv_infer_datetime_format_ymd 0.9900 1.0007 1.0076 2.666500 0.999433 stat_ops_frame_mean_int_axis_1 1.0018 0.9980 0.9986 6.934567 0.999467 timeseries_timestamp_downsample_mean 1.0007 0.9988 0.9991 5.702433 0.999533 stats_rank2d_axis1_average 0.9996 0.9986 1.0006 15.023333 0.999600 frame_ctor_dtindex_YearBegin(1) 1.0114 0.9826 1.0049 0.553700 0.999633 frame_interpolate 0.9991 1.0002 0.9996 108.619467 0.999633 groupby_sum_booleans 1.0028 0.9955 1.0007 1.403700 0.999667 frame_assign_timeseries_index 1.0020 0.9938 1.0034 0.816233 0.999733 frame_html_repr_trunc_mi 1.0037 0.9920 1.0037 56.387967 0.999800 frame_dropna_axis1_any 0.9997 0.9995 1.0004 211.475600 0.999867 frame_ctor_dtindex_BYearBegin(2) 1.0006 0.9906 1.0085 0.552300 0.999900 dataframe_resample_max_string 1.0003 0.9946 1.0048 2.040000 0.999900 ctor_index_array_string 1.0000 1.0000 1.0000 0.027567 1.000000 frame_reindex_columns 1.0044 0.9919 1.0037 0.448900 1.000000 frame_object_unequal 1.0000 0.9692 1.0308 0.010300 1.000000 index_float64_construct 1.0003 0.9979 1.0018 49.974267 1.000000 dataframe_resample_mean_string 0.9995 0.9985 1.0021 2.858333 1.000033 frame_ctor_dtindex_CBMonthEnd(2) 1.0044 0.9967 0.9990 3.859100 1.000033 stat_ops_level_frame_sum_multiple 0.9977 1.0010 1.0014 10.228833 1.000033 frame_ctor_dtindex_BusinessDay(1) 0.9878 1.0066 1.0057 1.592667 1.000033 eval_frame_chained_cmp_python_one_thread 1.0088 0.9967 0.9947 79.073700 1.000067 timeseries_asof 1.0003 1.0045 0.9955 9.020433 1.000100 join_dataframe_integer_key 1.0007 0.9973 1.0023 2.300900 1.000100 frame_ctor_dtindex_YearEnd(1) 0.9894 0.9875 1.0235 0.559067 1.000133 frame_sort_index_by_columns 0.9980 0.9964 1.0060 50.691167 1.000133 frame_apply_user_func 0.9981 1.0021 1.0002 247.065067 1.000133 groupby_frame_singlekey_integer 1.0012 0.9945 1.0050 3.048333 1.000233 stats_rolling_mean 0.9966 1.0026 1.0015 1.559333 1.000233 eval_frame_chained_cmp_python_one_thread 1.0040 1.0020 0.9947 78.851800 1.000233 frame_ctor_dtindex_BYearEnd(1) 0.9893 0.9875 1.0241 0.557100 1.000300 frame_float_equal 1.0005 1.0002 1.0004 15.136133 1.000367 frame_from_series 1.0119 1.0009 0.9884 0.087800 1.000400 datetimeindex_add_offset 1.0010 0.9981 1.0022 0.326300 1.000433 stat_ops_frame_sum_float_axis_0 0.9990 0.9897 1.0127 5.553567 1.000467 frame_add_st 1.0018 1.0004 0.9992 5.015467 1.000467 replace_replacena 0.9960 1.0031 1.0023 4.546033 1.000467 stat_ops_frame_mean_int_axis_0 0.9962 1.0003 1.0050 6.036333 1.000500 read_csv_thou_vb 1.0091 0.9970 0.9954 17.231100 1.000500 frame_apply_np_mean 1.0011 0.9868 1.0137 8.898800 1.000533 datetime_index_intersection 0.9992 0.9977 1.0048 0.413567 1.000567 timestamp_ops_diff2 1.0125 0.9932 0.9961 21.444867 1.000600 index_float64_div 1.0001 1.0018 1.0003 2.372433 1.000733 index_float64_boolean_indexer 1.0019 0.9990 1.0013 6.160033 1.000733 series_align_int64_index 1.0000 1.0048 0.9976 28.314600 1.000800 read_csv_standard 0.9964 1.0011 1.0050 11.131100 1.000833 groupby_multi_cython 1.0053 0.9973 1.0001 18.215233 1.000900 groupby_transform 1.0031 0.9963 1.0033 261.642900 1.000900 dataframe_resample_mean_numpy 0.9994 1.0018 1.0016 2.882000 1.000933 timeseries_add_irregular 0.9975 1.0032 1.0025 20.747133 1.001067 timestamp_ops_diff1 1.0042 1.0017 0.9976 8.451000 1.001167 series_align_left_monotonic 1.0011 1.0052 0.9973 13.413033 1.001200 frame_apply_axis_1 0.9980 0.9915 1.0142 103.404567 1.001233 concat_empty_frames1 0.9983 0.9976 1.0080 0.962533 1.001300 series_align_irregular_string 0.9993 0.9892 1.0154 78.737300 1.001300 frame_to_html_mixed 1.0038 0.9961 1.0043 340.517767 1.001400 frame_multi_and_st 1.0036 1.0024 0.9983 103.086933 1.001433 eval_frame_chained_cmp_python_one_thread 1.0040 0.9967 1.0037 78.742500 1.001467 index_int64_union 0.9985 1.0032 1.0028 76.496600 1.001500 stat_ops_frame_mean_float_axis_0 0.9937 0.9971 1.0137 5.572667 1.001500 lib_fast_zip_fillna 1.0180 0.9949 0.9917 13.029667 1.001533 frame_ctor_dtindex_YearEnd(2) 1.0043 0.9922 1.0085 0.552967 1.001667 frame_object_equal 1.0013 1.0007 1.0032 5.000433 1.001733 eval_frame_chained_cmp_python_one_thread 1.0088 1.0020 0.9947 78.923567 1.001833 match_strings 1.0131 0.9954 0.9970 0.519000 1.001833 frame_apply_lambda_mean 1.0035 0.9863 1.0157 8.303000 1.001833 series_ctor_from_dict 1.0050 0.9907 1.0099 3.816667 1.001867 timeseries_1min_5min_mean 1.0048 0.9973 1.0036 0.832733 1.001900 indexing_panel_subset 0.9985 0.9960 1.0114 1.316567 1.001967 packers_read_csv 1.0032 1.0009 1.0018 45.250900 1.001967 timeseries_sort_index 1.0003 0.9986 1.0071 9.505533 1.002000 frame_insert_500_columns_end 0.9991 0.9963 1.0106 152.178333 1.002000 frame_dropna_axis1_all 1.0067 0.9995 1.0000 323.670133 1.002067 reshape_stack_simple 1.0029 0.9953 1.0083 4.438100 1.002167 frame_nonunique_equal 1.0020 1.0007 1.0038 5.003933 1.002167 frame_interpolate_some_good_infer 0.9988 0.9986 1.0092 4.915667 1.002200 indexing_dataframe_boolean_rows_object 1.0008 0.9992 1.0068 0.750000 1.002267 frame_ctor_dtindex_CBMonthEnd(1) 1.0056 0.9956 1.0057 3.840667 1.002300 frame_add 1.0014 1.0001 1.0060 5.007567 1.002500 stat_ops_frame_mean_float_axis_1 1.0008 1.0001 1.0067 6.290467 1.002533 frame_multi_and 1.0041 1.0050 0.9985 95.275467 1.002533 sparse_series_to_frame 1.0009 1.0026 1.0041 160.298233 1.002533 frame_ctor_dtindex_QuarterEnd(2) 0.9987 0.9933 1.0158 0.548433 1.002600 frame_ctor_nested_dict_int64 0.9990 1.0013 1.0077 111.654667 1.002667 melt_dataframe 1.0010 1.0013 1.0057 2.353533 1.002667 dataframe_resample_max_numpy 1.0015 1.0015 1.0052 2.059333 1.002733 series_timestamp_compare 0.9955 1.0121 1.0008 3.212200 1.002800 frame_fillna_inplace 1.0040 1.0019 1.0025 11.678200 1.002800 stat_ops_frame_sum_int_axis_1 1.0047 0.9980 1.0059 6.241267 1.002867 dataframe_resample_min_numpy 1.0044 1.0018 1.0025 2.063567 1.002900 frame_add_no_ne 1.0013 1.0099 0.9975 5.007667 1.002900 read_table_multiple_date_baseline 1.0113 0.9863 1.0114 95.256800 1.003000 eval_frame_chained_cmp_python_one_thread 1.0088 0.9967 1.0037 78.814267 1.003067 indexing_dataframe_boolean_st 1.0087 0.9850 1.0160 44.529733 1.003233 frame_insert_100_columns_begin 0.9985 0.9980 1.0132 30.531167 1.003233 eval_frame_chained_cmp_python_one_thread 1.0040 1.0020 1.0037 78.592367 1.003233 frame_drop_dup_inplace 1.0027 1.0098 0.9973 3.387333 1.003267 series_value_counts_int64 1.0007 1.0001 1.0091 2.764000 1.003300 unstack_sparse_keyspace 0.9970 1.0060 1.0070 2.153700 1.003333 timeseries_period_downsample_mean 1.0047 1.0004 1.0050 12.839733 1.003367 timeseries_asof_nan 1.0040 0.9995 1.0070 8.285200 1.003500 reindex_frame_level_reindex 0.9965 0.9990 1.0150 0.937200 1.003500 frame_ctor_dtindex_MonthEnd(2) 1.0086 0.9988 1.0035 1.715767 1.003633 frame_drop_duplicates 1.0123 1.0004 0.9983 17.945233 1.003667 read_table_multiple_date 1.0064 0.9951 1.0095 211.822467 1.003667 frame_ctor_dtindex_QuarterBegin(1) 1.0133 0.9947 1.0043 1.696333 1.004100 strings_extract 1.0045 1.0304 0.9774 49.950900 1.004100 groupby_multi_series_op 1.0015 1.0057 1.0053 16.495333 1.004167 frame_ctor_dtindex_MonthBegin(1) 1.0011 0.9961 1.0154 1.681000 1.004200 frame_interpolate_some_good 0.9996 1.0012 1.0121 2.827900 1.004300 indexing_dataframe_boolean_no_ne 1.0254 0.9937 0.9939 44.050967 1.004333 frame_mult_no_ne 1.0003 1.0129 1.0000 5.010667 1.004400 groupby_apply_dict_return 1.0000 0.9951 1.0181 49.280000 1.004400 series_xs_mi_ix 1.0150 0.9972 1.0013 0.487067 1.004500 frame_from_records_generator 0.9969 1.0099 1.0068 68.386433 1.004533 stats_rank_average_int 1.0039 1.0047 1.0051 21.891700 1.004567 frame_ctor_dtindex_MonthEnd(1) 1.0081 0.9949 1.0107 1.696800 1.004567 index_float64_mul 1.0027 1.0244 0.9866 1.498700 1.004567 frame_ctor_dtindex_BusinessDay(2) 1.0107 0.9990 1.0041 1.622567 1.004600 frame_ctor_dtindex_CustomBusinessDay(2) 1.0098 0.9944 1.0097 1.705133 1.004633 timeseries_custom_bday_incr 0.9841 1.0000 1.0298 0.024433 1.004633 eval_frame_chained_cmp_python_one_thread 1.0088 1.0020 1.0037 78.664133 1.004833 strings_pad 1.0318 0.9587 1.0241 4.901633 1.004867 frame_from_records_generator_nrows 1.0036 1.0088 1.0022 1.024333 1.004867 sort_level_one 1.0069 1.0052 1.0027 4.848433 1.004933 replace_large_dict 1.0057 0.9893 1.0202 31661.362433 1.005067 timeseries_slice_minutely 1.0069 0.9974 1.0114 0.091467 1.005233 frame_multi_and_no_ne 1.0117 1.0004 1.0036 104.681367 1.005233 strings_contains_many_noregex 0.9902 1.0001 1.0259 2.882300 1.005400 groupby_last 0.9996 1.0073 1.0093 4.621000 1.005400 panel_pct_change_major 0.9911 1.0205 1.0047 5491.669567 1.005433 groupby_last_float32 1.0056 1.0013 1.0099 4.513233 1.005600 packers_write_csv 1.0187 0.9849 1.0133 606.832267 1.005633 frame_drop_duplicates_na 1.0213 0.9957 1.0001 17.891200 1.005700 frame_iteritems 1.0052 0.9998 1.0123 49.652033 1.005767 read_csv_infer_datetime_format_custom 1.0131 0.9981 1.0066 11.816200 1.005933 strings_center 1.0289 0.9648 1.0241 4.902233 1.005933 join_dataframe_integer_2key 1.0149 0.9963 1.0068 6.700767 1.006000 frame_ctor_dtindex_BMonthEnd(1) 1.0139 1.0034 1.0017 1.679800 1.006333 timeseries_custom_bmonthend_incr 0.9852 1.0169 1.0170 0.159967 1.006367 frame_boolean_row_select 1.0000 1.0073 1.0119 0.367433 1.006400 groupby_multi_python 1.0136 0.9830 1.0226 153.774867 1.006400 frame_ctor_dtindex_BQuarterEnd(2) 1.0025 0.9957 1.0213 0.547567 1.006500 frame_dropna_axis0_all 1.0225 1.0003 0.9969 90.323233 1.006567 strings_contains_few 1.0373 0.9525 1.0299 7.053167 1.006567 frame_ctor_dtindex_CBMonthBegin(1) 1.0089 1.0062 1.0047 3.162867 1.006600 datetimeindex_unique 1.0048 0.9953 1.0202 0.150533 1.006767 frame_ctor_dtindex_BDay(2) 1.0141 1.0000 1.0065 1.632000 1.006867 timeseries_to_datetime_YYYYMMDD 1.0115 1.0018 1.0073 11.224567 1.006867 frame_ctor_dtindex_BMonthBegin(1) 1.0161 1.0012 1.0034 1.729033 1.006900 frame_ctor_dtindex_BMonthBegin(2) 1.0136 1.0002 1.0070 1.728533 1.006933 frame_ctor_dtindex_CBMonthBegin(2) 1.0003 1.0086 1.0127 2.732433 1.007200 groupby_series_simple_cython 1.0020 0.9941 1.0256 298.232533 1.007233 frame_ctor_dtindex_BQuarterBegin(1) 1.0130 1.0023 1.0065 1.746533 1.007267 series_drop_duplicates_int 1.0208 0.9977 1.0035 0.869633 1.007333 read_csv_infer_datetime_format_iso8601 0.9970 1.0129 1.0125 2.198000 1.007467 concat_series_axis1 1.0071 1.0014 1.0142 142.932900 1.007567 strings_count 1.0215 0.9926 1.0087 8.428867 1.007600 sort_level_zero 1.0053 1.0054 1.0127 4.842667 1.007800 frame_ctor_dtindex_CustomBusinessDay(1) 1.0096 0.9988 1.0152 1.712233 1.007867 frame_ctor_dtindex_BQuarterBegin(2) 0.9957 1.0019 1.0263 0.548333 1.007967 frame_ctor_dtindex_BMonthEnd(2) 1.0140 1.0036 1.0064 1.678067 1.008000 frame_ctor_dtindex_BDay(1) 1.0175 0.9998 1.0070 1.574733 1.008100 frame_ctor_dtindex_BYearEnd(2) 1.0061 1.0049 1.0134 0.548633 1.008133 frame_ctor_dtindex_QuarterEnd(1) 1.0193 0.9946 1.0107 1.722433 1.008200 concat_small_frames 1.0111 1.0120 1.0020 24.247433 1.008367 frame_to_csv 1.0257 1.0040 0.9955 145.205000 1.008400 frame_iteritems_cached 0.9988 1.0530 0.9741 0.819967 1.008633 frame_ctor_dtindex_Week(2) 1.0228 1.0025 1.0012 1.418567 1.008833 frame_ctor_dtindex_BYearBegin(1) 1.0048 1.0012 1.0211 0.551000 1.009033 frame_ctor_dtindex_Micro(1) 1.0120 1.0076 1.0080 1.199133 1.009200 frame_ctor_dtindex_CDay(1) 1.0114 1.0032 1.0133 1.704100 1.009300 stats_rank_pct_average 1.0537 1.0218 0.9534 32.145633 1.009633 frame_ctor_dtindex_CDay(2) 1.0157 1.0029 1.0108 1.701667 1.009800 sparse_frame_constructor 1.0200 0.9935 1.0165 13.823567 1.010000 frame_get_numeric_data 0.9961 1.0136 1.0204 0.163533 1.010033 frame_xs_row 1.0062 1.0356 0.9889 0.064567 1.010233 packers_read_json 1.0040 1.0088 1.0181 58.513567 1.010300 index_from_series_ctor 1.0369 0.9971 0.9972 0.027933 1.010400 frame_ctor_dtindex_Week(1) 1.0226 1.0026 1.0061 1.415967 1.010433 frame_constructor_ndarray 1.0390 1.0057 0.9866 0.069967 1.010433 index_str_boolean_indexer 1.0107 1.0071 1.0147 14.207300 1.010833 frame_apply_pass_thru 1.0123 1.0035 1.0174 7.717433 1.011067 strings_len 1.0147 1.0104 1.0084 2.862100 1.011167 frame_ctor_dtindex_MonthBegin(2) 1.0178 1.0064 1.0100 1.666567 1.011400 frame_ctor_dtindex_Nano(1) 1.0165 1.0059 1.0120 1.526867 1.011467 timedelta_convert_int 1.0123 1.0173 1.0050 0.270767 1.011533 packers_write_json 1.0224 1.0053 1.0072 26.996567 1.011633 strings_contains_few_noregex 1.0038 1.0052 1.0266 2.771000 1.011867 frame_ctor_dtindex_Micro(2) 1.0136 1.0072 1.0152 1.199367 1.012000 frame_iloc_big 1.0047 1.0379 0.9942 0.288567 1.012267 frame_shift_axis_1 1.0357 0.9984 1.0028 40.952233 1.012300 frame_shift_axis0 1.0374 1.0001 0.9996 16.601433 1.012367 frame_ctor_dtindex_Hour(1) 1.0135 1.0080 1.0164 1.205767 1.012633 series_getitem_label_slice 1.0313 1.0036 1.0036 0.088767 1.012833 frame_ctor_dtindex_Milli(1) 1.0091 1.0127 1.0169 1.204300 1.012900 timestamp_series_compare 1.0057 1.0169 1.0166 3.214533 1.013067 groupby_indices 1.0306 1.0077 1.0017 8.220333 1.013333 timeseries_to_datetime_iso8601 1.0115 1.0152 1.0138 5.718900 1.013500 stat_ops_frame_sum_float_axis_1 1.0290 1.0087 1.0030 5.678100 1.013567 frame_to_csv_date_formatting 1.0147 1.0158 1.0105 20.106667 1.013667 frame_ctor_dtindex_Nano(2) 1.0174 1.0093 1.0143 1.525267 1.013667 packers_read_json_date_index 1.0064 1.0130 1.0224 57.713967 1.013933 lib_fast_zip 1.0070 1.0191 1.0159 9.054433 1.014000 datetimeindex_normalize 1.0308 0.9751 1.0367 3.521000 1.014200 frame_reindex_axis0 0.9869 1.0291 1.0282 93.322333 1.014733 frame_fancy_lookup 1.0215 1.0292 0.9938 4.742833 1.014833 strings_cat 1.0233 1.0036 1.0184 1.381667 1.015100 write_csv_standard 1.0261 1.0100 1.0094 46.766900 1.015167 timeseries_asof_single 1.0066 1.0000 1.0403 0.047800 1.015633 frame_ctor_dtindex_Day(2) 1.0169 1.0136 1.0176 1.199067 1.016033 frame_ctor_dtindex_Minute(2) 1.0211 1.0202 1.0074 1.211133 1.016233 frame_ctor_dtindex_Second(1) 1.0249 1.0133 1.0122 1.194133 1.016800 frame_ctor_dtindex_BQuarterEnd(1) 1.0193 1.0064 1.0252 1.710300 1.016967 frame_ctor_dtindex_Milli(2) 1.0152 1.0158 1.0208 1.203500 1.017267 frame_ctor_dtindex_Hour(2) 1.0216 1.0190 1.0116 1.196300 1.017400 timedelta_convert_string 1.0080 1.0100 1.0349 238.137133 1.017633 dtindex_from_series_ctor 1.0365 1.0000 1.0183 0.017333 1.018267 timedelta_convert_string_seconds 1.0021 1.0134 1.0406 244.631367 1.018700 timeseries_large_lookup_value 1.0536 0.9749 1.0279 0.037333 1.018800 frame_ctor_dtindex_Second(2) 1.0212 1.0224 1.0128 1.195367 1.018800 frame_apply_ref_by_name 1.0320 1.0222 1.0022 16.507867 1.018800 frame_to_csv_mixed 1.0126 1.0199 1.0266 242.926700 1.019700 frame_to_csv2 1.0195 1.0201 1.0234 119.226333 1.021000 frame_ctor_dtindex_Day(1) 1.0209 1.0161 1.0277 1.195767 1.021567 frame_ctor_dtindex_Minute(1) 1.0267 1.0180 1.0214 1.198167 1.022033 strings_findall 1.0167 1.0507 1.0042 9.807333 1.023867 dataframe_getitem_scalar 1.0616 1.0000 1.0272 0.011667 1.029600 series_drop_duplicates_string 1.0402 1.0230 1.0274 0.790567 1.030200 groupby_frame_apply_overhead 1.0194 1.0163 1.0604 12.080333 1.032033 frame_mask_bools 1.0186 1.0784 0.9999 31.480933 1.032300 series_value_counts_strings 1.0364 1.0324 1.0329 9.179167 1.033900 frame_getitem_single_column2 1.0547 1.0191 1.0317 40.453933 1.035167 frame_float_unequal 1.0317 NaN 1.0397 0.010000 1.035700 datamatrix_getitem_scalar 1.0272 1.0342 1.0544 0.011667 1.038600 series_getitem_pos_slice 1.0083 1.1038 1.0135 0.076900 1.041867 frame_getitem_single_column 1.0391 1.0601 1.0508 39.063533 1.050000 datetime_index_union 1.0375 1.0823 1.0389 0.094033 1.052900 strings_match 1.0999 1.0654 1.0756 7.737467 1.080300 groupby_simple_compress_timing 1.1820 1.1877 1.0010 37.462800 1.123567 timeseries_timestamp_tzinfo_cons 1.2065 1.2541 1.2636 0.019333 1.241400 dti_reset_index_tz 1.2987 1.3168 1.2744 15.248200 1.296633 
@jreback
Copy link
Contributor

jreback commented May 21, 2014

looks ok, maybe investigate the very last test a bit (dti_reset_index_tz). generally a bench that is say < 1ms is really hard to measure as lots of things can throw it off (e.g. why the 2nd to last one is no biggie)

@dbew
Copy link
Contributor Author

dbew commented May 21, 2014

There were a few functions in tslib causing the slowdown - stuff which could have been better cythoned. I've tweaked a few things to keep a bit more in cython and the performance looks better. I've broken two seemingly unrelated tests though.

Test name | head[ms] | base[ms] | ratio | ------------------------------------------------------------------------------- dti_reset_index_tz | 16.3760 | 15.3607 | 1.0661 | 

If that's good enough performance-wise then I'll fix the failing tests and push my changes tomorrow.

@jreback
Copy link
Contributor

jreback commented May 21, 2014

looks good

@dbew
Copy link
Contributor Author

dbew commented May 22, 2014

I've rebased to master and fixed the merge. I can squash all of the commits once we're happy with the code and get the tests passing...

There are some tests failing on Travis in python 2.6. This seems to be a difference in numpy (e.g. fails in 1.6.1 but not 1.8.0 or our internally patched 1.7.1 on both python 2.6 and python 2.7).

I think it'll be very tricky to work out why there's a difference though - the problem will lie in tslib.tz_localize_to_utc which is quite complicated.

@jreback
Copy link
Contributor

jreback commented May 22, 2014

ok, numpy < 1.7 is pretty much completely broken for timedelta64. total_seconds does compensate so may want to have a look there.

@dbew
Copy link
Contributor Author

dbew commented May 22, 2014

Does that apply here? We're passing in np.array of int64s not dates, and I think all of the infer_dst logic stays in the int64 world, avoiding timedelta64...

@jreback
Copy link
Contributor

jreback commented May 22, 2014

not sure what the error is; just that < 1.7 has lots of issues (not so many with datetimes though)

@dbew
Copy link
Contributor Author

dbew commented May 23, 2014

Some more digging and this appears to be the problem:

# numpy 1.6 np.array(10, dtype='M8[s]').astype('M8[ns]').view('i8') == 10 # numpy 1.7 np.array(10, dtype='M8[s]').astype('M8[ns]').view('i8') == 10,000,000,000

This is in tslib._get_transitions for dateutil timezones. Multiplying by 1e9 in numpy < 1.7 has fixed the tests.

I've also rebased to master and squashed everything into one commit.

@jreback
Copy link
Contributor

jreback commented May 23, 2014

yep
1.6 is full of issues
I think we don't use any if numpy conversions: rather always convert to i8 first then convert

@dbew
Copy link
Contributor Author

dbew commented May 23, 2014

ah ok. I like the clarity ("convert from seconds to nanoseconds") and numpy 1.6 will be retired eventually..

Is there anything else I need to do before this is merged into the master branch?

Copy link
Contributor

Choose a reason for hiding this comment

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

put an issue link here (to the original issue)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Will do.

@dbew
Copy link
Contributor Author

dbew commented May 30, 2014

Have rebased to master, tests pass locally. The performance test was fine, no changes to before.

The travis build seems to be taking a while though..

@jreback
Copy link
Contributor

jreback commented May 30, 2014

travis turn around time is pretty random, I think it depends on their entire system load. sometimes pretty quick, sometimes not.

@jreback
Copy link
Contributor

jreback commented May 30, 2014

@jorisvandenbossche @cpcloud pls have a look if you can

pandas/tslib.pyx Outdated
Copy link
Contributor

Choose a reason for hiding this comment

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

this can be inline (in general a cdef function that is 'short' should/can be inline)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

@jreback
Copy link
Contributor

jreback commented May 30, 2014

travis very slow today....https://travis-ci.org/pydata/pandas/builds

Copy link
Member

Choose a reason for hiding this comment

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

Don't think you need the itertools import here.

@cpcloud
Copy link
Member

cpcloud commented May 30, 2014

@dbew few minor comments but looks good otherwise. I would say cdef (instead of cpdef) functions that are not called from Python. That way Cython won't generate Python c API calls until Abs necessary.

@cpcloud
Copy link
Member

cpcloud commented May 30, 2014

Which usually at function and class entry and exit points FYI

pandas/tslib.pyx Outdated
Copy link
Contributor

Choose a reason for hiding this comment

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

pretty sure you can inline this

Adds support for dateutil timezones across pandas. Support conversion between dateutil and pytz timezones. Ensure timezone functionality is tested with both dateutil and pytz.
@jreback
Copy link
Contributor

jreback commented Jun 3, 2014

great ping me on green

@jreback
Copy link
Contributor

jreback commented Jun 3, 2014

@cpcloud @jorisvandenbossche any more comments?

@jorisvandenbossche
Copy link
Member

No further comments on the docs.

@hayd @jreback As this is a rather large addition of code, should we start asking to check for PEP8 with pep8radius (#6248)? Or did we already ask to much of @dbew? (or would it not really work with cython code?)
@dbew Could you try that?

@dbew
Copy link
Contributor Author

dbew commented Jun 4, 2014

I was using a pep8 code checker in pydev while I was writing the code so it should be reasonably pep8 compliant. I'll take a look at pep8radius.

It'd be good to get this into the master branch though..

@jorisvandenbossche
Copy link
Member

@dbew If you already used a pep8 code checker in pydev, then it is OK for this PR!

But, if you want to give pep8radius a try and give some feedback (new tool from @hayd), certainly welcome!

@dbew
Copy link
Contributor Author

dbew commented Jun 4, 2014

Ok, I'll give pep8radius a go soon.

@jreback
Copy link
Contributor

jreback commented Jun 4, 2014

@dbew ping when you are ready for this (after/if anything needs peping)

@dbew
Copy link
Contributor Author

dbew commented Jun 4, 2014

@jreback All ready. @jorisvandenbossche was happy with using the pydev pep8 checker. I'm not going to get chance to look at pep8radius today.

jreback added a commit that referenced this pull request Jun 4, 2014
ENH: Support dateutil timezones. GH4688.
@jreback jreback merged commit 87660ef into pandas-dev:master Jun 4, 2014
@jreback
Copy link
Contributor

jreback commented Jun 4, 2014

thanks @dbew

hopefully no unexpected fallout from this....but I think you did a great job shephearding this!

@dbew
Copy link
Contributor Author

dbew commented Jun 4, 2014

No problem, it's been interesting. It's something that we'll be using inside AHLMSS so we'll keep an eye out for issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Enhancement Frequency DateOffsets Timezones Timezone data dtype

5 participants