From 6fda9c97873703602bb463d4ea167f81b27585f2 Mon Sep 17 00:00:00 2001 From: laudney Date: Sat, 22 Oct 2016 20:43:40 +0100 Subject: [PATCH] Refactor asv tests for Series.asof. Add asv tests for DataFrame.asof --- asv_bench/benchmarks/timeseries.py | 60 +++++++++++++++--------------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/asv_bench/benchmarks/timeseries.py b/asv_bench/benchmarks/timeseries.py index fda6ebb4b437ec..dc3378ccdbc31e 100644 --- a/asv_bench/benchmarks/timeseries.py +++ b/asv_bench/benchmarks/timeseries.py @@ -284,56 +284,54 @@ class timeseries_asof(object): goal_time = 0.2 def setup(self): - self.N = 100000 - self.rng = date_range(start='1/1/2000', periods=self.N, freq='T') - if hasattr(Series, 'convert'): - Series.resample = Series.convert - self.ts = Series(np.random.randn(self.N), index=self.rng) self.N = 10000 self.rng = date_range(start='1/1/1990', periods=self.N, freq='53s') - self.ts = Series(np.random.randn(self.N), index=self.rng) self.dates = date_range(start='1/1/1990', periods=(self.N * 10), freq='5s') + self.ts = Series(np.random.randn(self.N), index=self.rng) + self.ts2 = self.ts.copy() + self.ts2[250:5000] = np.nan + self.ts3 = self.ts.copy() + self.ts3[-5000:] = np.nan - def time_timeseries_asof(self): + def time_asof_list(self): self.ts.asof(self.dates) + def time_asof_single(self): + self.ts.asof(self.dates[0]) -class timeseries_asof_nan(object): - goal_time = 0.2 + def time_asof_nan_list(self): + self.ts2.asof(self.dates) - def setup(self): - self.N = 100000 - self.rng = date_range(start='1/1/2000', periods=self.N, freq='T') - if hasattr(Series, 'convert'): - Series.resample = Series.convert - self.ts = Series(np.random.randn(self.N), index=self.rng) - self.N = 10000 - self.rng = date_range(start='1/1/1990', periods=self.N, freq='53s') - self.ts = Series(np.random.randn(self.N), index=self.rng) - self.dates = date_range(start='1/1/1990', periods=(self.N * 10), freq='5s') - self.ts[250:5000] = np.nan - - def time_timeseries_asof_nan(self): - self.ts.asof(self.dates) + def time_asof_nan_single(self): + self.ts3.asof(self.dates[-1]) -class timeseries_asof_single(object): +class timeseries_dataframe_asof(object): goal_time = 0.2 def setup(self): - self.N = 100000 - self.rng = date_range(start='1/1/2000', periods=self.N, freq='T') - if hasattr(Series, 'convert'): - Series.resample = Series.convert - self.ts = Series(np.random.randn(self.N), index=self.rng) self.N = 10000 + self.M = 100 self.rng = date_range(start='1/1/1990', periods=self.N, freq='53s') - self.ts = Series(np.random.randn(self.N), index=self.rng) self.dates = date_range(start='1/1/1990', periods=(self.N * 10), freq='5s') + self.ts = DataFrame(np.random.randn(self.N * self.M).reshape((self.N, self.M)), index=self.rng) + self.ts2 = self.ts.copy() + self.ts2.iloc[250:5000] = np.nan + self.ts3 = self.ts.copy() + self.ts3.iloc[-5000:] = np.nan - def time_timeseries_asof_single(self): + def time_asof_list(self): + self.ts.asof(self.dates) + + def time_asof_single(self): self.ts.asof(self.dates[0]) + def time_asof_nan_list(self): + self.ts2.asof(self.dates) + + def time_asof_nan_single(self): + self.ts3.asof(self.dates[-1]) + class timeseries_custom_bday_apply(object): goal_time = 0.2