1
1
import numpy as np
2
2
import pandas .util .testing as tm
3
- from pandas import (DataFrame , Series , rolling_median , rolling_mean ,
4
- rolling_min , rolling_max , rolling_var , rolling_skew ,
5
- rolling_kurt , rolling_std , read_csv , factorize , date_range )
3
+ from pandas import DataFrame , Series , read_csv , factorize , date_range
6
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
7
11
try :
8
12
from pandas ._libs import algos
9
13
except ImportError :
@@ -171,8 +175,7 @@ def run(period):
171
175
class ParallelRolling (object ):
172
176
173
177
goal_time = 0.2
174
- params = ['rolling_median' , 'rolling_mean' , 'rolling_min' , 'rolling_max' ,
175
- 'rolling_var' , 'rolling_skew' , 'rolling_kurt' , 'rolling_std' ]
178
+ params = ['median' , 'mean' , 'min' , 'max' , 'var' , 'skew' , 'kurt' , 'std' ]
176
179
param_names = ['method' ]
177
180
178
181
def setup (self , method ):
@@ -181,34 +184,28 @@ def setup(self, method):
181
184
win = 100
182
185
arr = np .random .rand (100000 )
183
186
if hasattr (DataFrame , 'rolling' ):
184
- rolling = {'rolling_median' : 'median' ,
185
- 'rolling_mean' : 'mean' ,
186
- 'rolling_min' : 'min' ,
187
- 'rolling_max' : 'max' ,
188
- 'rolling_var' : 'var' ,
189
- 'rolling_skew' : 'skew' ,
190
- 'rolling_kurt' : 'kurt' ,
191
- 'rolling_std' : 'std' }
192
187
df = DataFrame (arr ).rolling (win )
193
188
194
189
@test_parallel (num_threads = 2 )
195
190
def parallel_rolling ():
196
- getattr (df , rolling [ method ] )()
191
+ getattr (df , method )()
197
192
self .parallel_rolling = parallel_rolling
198
- else :
199
- rolling = {'rolling_median ' : rolling_median ,
200
- 'rolling_mean ' : rolling_mean ,
201
- 'rolling_min ' : rolling_min ,
202
- 'rolling_max ' : rolling_max ,
203
- 'rolling_var ' : rolling_var ,
204
- 'rolling_skew ' : rolling_skew ,
205
- 'rolling_kurt ' : rolling_kurt ,
206
- 'rolling_std ' : rolling_std }
193
+ elif have_rolling_methods :
194
+ rolling = {'median ' : rolling_median ,
195
+ 'mean ' : rolling_mean ,
196
+ 'min ' : rolling_min ,
197
+ 'max ' : rolling_max ,
198
+ 'var ' : rolling_var ,
199
+ 'skew ' : rolling_skew ,
200
+ 'kurt ' : rolling_kurt ,
201
+ 'std ' : rolling_std }
207
202
208
203
@test_parallel (num_threads = 2 )
209
204
def parallel_rolling ():
210
205
rolling [method ](arr , win )
211
206
self .parallel_rolling = parallel_rolling
207
+ else :
208
+ raise NotImplementedError
212
209
213
210
def time_rolling (self , method ):
214
211
self .parallel_rolling ()
0 commit comments