@@ -145,16 +145,25 @@ def time_searchsorted(self, dtype):
145
145
146
146
class Map (object ):
147
147
148
- params = ['dict' , 'Series' ]
148
+ params = ( ['dict' , 'Series' , 'lambda' ], [ 'object' , 'category' , 'int' ])
149
149
param_names = 'mapper'
150
150
151
- def setup (self , mapper ):
151
+ def setup (self , mapper , dtype ):
152
152
map_size = 1000
153
- map_data = Series (map_size - np .arange (map_size ))
154
- self .map_data = map_data if mapper == 'Series' else map_data .to_dict ()
155
- self .s = Series (np .random .randint (0 , map_size , 10000 ))
153
+ map_data = Series (map_size - np .arange (map_size ), dtype = dtype )
156
154
157
- def time_map (self , mapper ):
155
+ # construct mapper
156
+ if mapper == 'Series' :
157
+ self .map_data = map_data
158
+ elif mapper == 'lambda' :
159
+ self .map_data = map_data .to_dict ()
160
+ else :
161
+ map_dict = map_data .to_dict ()
162
+ self .map_data = lambda x : map_dict [x ]
163
+
164
+ self .s = Series (np .random .randint (0 , map_size , 10000 ), dtype = dtype )
165
+
166
+ def time_map (self , mapper , * args , ** kwargs ):
158
167
self .s .map (self .map_data )
159
168
160
169
0 commit comments