|
2 | 2 | import pandas.util.testing as tm
|
3 | 3 | from pandas import DataFrame, Series, read_csv, factorize, date_range
|
4 | 4 | from pandas.core.algorithms import take_1d
|
| 5 | +try: |
| 6 | + from pandas import (rolling_median, rolling_mean, rolling_min, rolling_max, |
| 7 | + rolling_var, rolling_skew, rolling_kurt, rolling_std) |
| 8 | + have_rolling_methods = True |
| 9 | +except ImportError: |
| 10 | + have_rolling_methods = False |
5 | 11 | try:
|
6 | 12 | from pandas._libs import algos
|
7 | 13 | except ImportError:
|
@@ -177,12 +183,37 @@ def setup(self, method):
|
177 | 183 | raise NotImplementedError
|
178 | 184 | win = 100
|
179 | 185 | arr = np.random.rand(100000)
|
180 |
| - df = DataFrame(arr).rolling(win) |
181 |
| - |
182 |
| - @test_parallel(num_threads=2) |
183 |
| - def parallel_rolling(): |
184 |
| - getattr(df, method)() |
185 |
| - self.parallel_rolling = parallel_rolling |
| 186 | + if hasattr(DataFrame, 'rolling'): |
| 187 | + rolling = {'median': 'median', |
| 188 | + 'mean': 'mean', |
| 189 | + 'min': 'min', |
| 190 | + 'max': 'max', |
| 191 | + 'var': 'var', |
| 192 | + 'skew': 'skew', |
| 193 | + 'kurt': 'kurt', |
| 194 | + 'std': 'std'} |
| 195 | + df = DataFrame(arr).rolling(win) |
| 196 | + |
| 197 | + @test_parallel(num_threads=2) |
| 198 | + def parallel_rolling(): |
| 199 | + getattr(df, rolling[method])() |
| 200 | + self.parallel_rolling = parallel_rolling |
| 201 | + elif have_rolling_methods: |
| 202 | + rolling = {'median': rolling_median, |
| 203 | + 'mean': rolling_mean, |
| 204 | + 'min': rolling_min, |
| 205 | + 'max': rolling_max, |
| 206 | + 'var': rolling_var, |
| 207 | + 'skew': rolling_skew, |
| 208 | + 'kurt': rolling_kurt, |
| 209 | + 'std': rolling_std} |
| 210 | + |
| 211 | + @test_parallel(num_threads=2) |
| 212 | + def parallel_rolling(): |
| 213 | + rolling[method](arr, win) |
| 214 | + self.parallel_rolling = parallel_rolling |
| 215 | + else: |
| 216 | + raise NotImplementedError |
186 | 217 |
|
187 | 218 | def time_rolling(self, method):
|
188 | 219 | self.parallel_rolling()
|
|
0 commit comments