11import numpy as np
22import 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
64from 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
711try :
812 from pandas ._libs import algos
913except ImportError :
@@ -171,8 +175,7 @@ def run(period):
171175class ParallelRolling (object ):
172176
173177 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' ]
176179 param_names = ['method' ]
177180
178181 def setup (self , method ):
@@ -181,34 +184,28 @@ def setup(self, method):
181184 win = 100
182185 arr = np .random .rand (100000 )
183186 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' }
192187 df = DataFrame (arr ).rolling (win )
193188
194189 @test_parallel (num_threads = 2 )
195190 def parallel_rolling ():
196- getattr (df , rolling [ method ] )()
191+ getattr (df , method )()
197192 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 }
207202
208203 @test_parallel (num_threads = 2 )
209204 def parallel_rolling ():
210205 rolling [method ](arr , win )
211206 self .parallel_rolling = parallel_rolling
207+ else :
208+ raise NotImplementedError
212209
213210 def time_rolling (self , method ):
214211 self .parallel_rolling ()
0 commit comments