@@ -231,28 +231,34 @@ def test_median(self):
231231 ])
232232 def test_mode_empty (self , dropna , expected ):
233233 s = Series ([], dtype = np .float64 )
234- tm .assert_series_equal (s .mode (dropna ), expected )
234+ result = s .mode (dropna )
235+ tm .assert_series_equal (result , expected )
235236
236- @pytest .mark .parametrize ('dropna, expected1, expected2, expected3' , [
237- (True , [1 ], [1 , 3 ], [1.0 ]),
238- (False , [1 ], [1 , 3 ], [1 , np .nan ]),
237+ @pytest .mark .parametrize ('dropna, data, expected' , [
238+ (True , [1 , 1 , 1 , 2 ], [1 ]),
239+ (True , [1 , 1 , 1 , 2 , 3 , 3 , 3 ], [1 , 3 ]),
240+ (False , [1 , 1 , 1 , 2 ], [1 ]),
241+ (False , [1 , 1 , 1 , 2 , 3 , 3 , 3 ], [1 , 3 ]),
239242 ])
240- def test_mode_numerical (self , dropna , expected1 , expected2 , expected3 ):
241- data_single = [1 ] * 5 + [2 ] * 3
242- data_multi = [1 ] * 5 + [2 ] * 3 + [3 ] * 5
243-
244- for dt in np .typecodes ['AllInteger' ] + np .typecodes ['Float' ]:
245- s = Series (data_single , dtype = dt )
246- expected1 = Series (expected1 , dtype = dt )
247- tm .assert_series_equal (s .mode (dropna ), expected1 )
248-
249- s = Series (data_multi , dtype = dt )
250- expected2 = Series (expected2 , dtype = dt )
251- tm .assert_series_equal (s .mode (dropna ), expected2 )
243+ @pytest .mark .parametrize (
244+ 'dt' ,
245+ list (np .typecodes ['AllInteger' ] + np .typecodes ['Float' ])
246+ )
247+ def test_mode_numerical (self , dropna , data , expected , dt ):
248+ s = Series (data , dtype = dt )
249+ result = s .mode (dropna )
250+ expected = Series (expected , dtype = dt )
251+ tm .assert_series_equal (result , expected )
252252
253- s = Series ([1 , np .nan ])
254- expected = Series (expected3 )
255- tm .assert_series_equal (s .mode (dropna ), expected )
253+ @pytest .mark .parametrize ('dropna, expected' , [
254+ (True , [1.0 ]),
255+ (False , [1 , np .nan ]),
256+ ])
257+ def test_mode_numerical_nan (self , dropna , expected ):
258+ s = Series ([1 , 1 , 2 , np .nan , np .nan ])
259+ result = s .mode (dropna )
260+ expected = Series (expected )
261+ tm .assert_series_equal (result , expected )
256262
257263 @pytest .mark .parametrize ('dropna, expected1, expected2, expected3' , [
258264 (True , ['b' ], ['bar' ], ['nan' ]),
@@ -263,34 +269,37 @@ def test_mode_str_obj(self, dropna, expected1, expected2, expected3):
263269 data = ['a' ] * 2 + ['b' ] * 3
264270
265271 s = Series (data , dtype = 'c' )
272+ result = s .mode (dropna )
266273 expected1 = Series (expected1 , dtype = 'c' )
267- tm .assert_series_equal (s . mode ( dropna ) , expected1 )
274+ tm .assert_series_equal (result , expected1 )
268275
269276 data = ['foo' , 'bar' , 'bar' , np .nan , np .nan , np .nan ]
270277
271278 s = Series (data , dtype = object )
272- expected2 = Series (expected2 , dtype = object )
273279 result = s .mode (dropna ).sort_values ().reset_index (drop = True )
280+ expected2 = Series (expected2 , dtype = object )
274281 tm .assert_series_equal (result , expected2 )
275282
276283 data = ['foo' , 'bar' , 'bar' , np .nan , np .nan , np .nan ]
277284
278285 s = Series (data , dtype = str )
286+ result = s .mode (dropna )
279287 expected3 = Series (expected3 , dtype = str )
280- tm .assert_series_equal (s . mode ( dropna ) , expected3 )
288+ tm .assert_series_equal (result , expected3 )
281289
282290 @pytest .mark .parametrize ('dropna, expected1, expected2' , [
283291 (True , ['foo' ], ['foo' ]),
284292 (False , ['foo' ], [np .nan ])
285293 ])
286294 def test_mode_mixeddtype (self , dropna , expected1 , expected2 ):
287- expected = Series (expected1 )
288295 s = Series ([1 , 'foo' , 'foo' ])
289- tm .assert_series_equal (s .mode (dropna ), expected )
296+ result = s .mode (dropna )
297+ expected = Series (expected1 )
298+ tm .assert_series_equal (result , expected )
290299
291- expected = Series (expected2 , dtype = object )
292300 s = Series ([1 , 'foo' , 'foo' , np .nan , np .nan , np .nan ])
293301 result = s .mode (dropna ).sort_values ().reset_index (drop = True )
302+ expected = Series (expected2 , dtype = object )
294303 tm .assert_series_equal (result , expected )
295304
296305 @pytest .mark .parametrize ('dropna, expected1, expected2' , [
@@ -299,16 +308,18 @@ def test_mode_mixeddtype(self, dropna, expected1, expected2):
299308 (False , [np .nan ], [np .nan , '2011-01-03' , '2013-01-02' ]),
300309 ])
301310 def test_mode_datetime (self , dropna , expected1 , expected2 ):
302- expected1 = Series (expected1 , dtype = 'M8[ns]' )
303311 s = Series (['2011-01-03' , '2013-01-02' ,
304312 '1900-05-03' , 'nan' , 'nan' ], dtype = 'M8[ns]' )
305- tm .assert_series_equal (s .mode (dropna ), expected1 )
313+ result = s .mode (dropna )
314+ expected1 = Series (expected1 , dtype = 'M8[ns]' )
315+ tm .assert_series_equal (result , expected1 )
306316
307- expected2 = Series (expected2 , dtype = 'M8[ns]' )
308317 s = Series (['2011-01-03' , '2013-01-02' , '1900-05-03' ,
309318 '2011-01-03' , '2013-01-02' , 'nan' , 'nan' ],
310319 dtype = 'M8[ns]' )
311- tm .assert_series_equal (s .mode (dropna ), expected2 )
320+ result = s .mode (dropna )
321+ expected2 = Series (expected2 , dtype = 'M8[ns]' )
322+ tm .assert_series_equal (result , expected2 )
312323
313324 @pytest .mark .parametrize ('dropna, expected1, expected2' , [
314325 (True , ['-1 days' , '0 days' , '1 days' ], ['2 min' , '1 day' ]),
@@ -319,14 +330,16 @@ def test_mode_timedelta(self, dropna, expected1, expected2):
319330
320331 s = Series (['1 days' , '-1 days' , '0 days' , 'nan' , 'nan' ],
321332 dtype = 'timedelta64[ns]' )
333+ result = s .mode (dropna )
322334 expected1 = Series (expected1 , dtype = 'timedelta64[ns]' )
323- tm .assert_series_equal (s . mode ( dropna ) , expected1 )
335+ tm .assert_series_equal (result , expected1 )
324336
325337 s = Series (['1 day' , '1 day' , '-1 day' , '-1 day 2 min' ,
326338 '2 min' , '2 min' , 'nan' , 'nan' ],
327339 dtype = 'timedelta64[ns]' )
340+ result = s .mode (dropna )
328341 expected2 = Series (expected2 , dtype = 'timedelta64[ns]' )
329- tm .assert_series_equal (s . mode ( dropna ) , expected2 )
342+ tm .assert_series_equal (result , expected2 )
330343
331344 @pytest .mark .parametrize ('dropna, expected1, expected2, expected3' , [
332345 (True , Categorical ([1 , 2 ], categories = [1 , 2 ]),
@@ -338,30 +351,35 @@ def test_mode_timedelta(self, dropna, expected1, expected2):
338351 ])
339352 def test_mode_category (self , dropna , expected1 , expected2 , expected3 ):
340353 s = Series (Categorical ([1 , 2 , np .nan , np .nan ]))
354+ result = s .mode (dropna )
341355 expected1 = Series (expected1 , dtype = 'category' )
342- tm .assert_series_equal (s . mode ( dropna ) , expected1 )
356+ tm .assert_series_equal (result , expected1 )
343357
344358 s = Series (Categorical ([1 , 'a' , 'a' , np .nan , np .nan ]))
359+ result = s .mode (dropna )
345360 expected2 = Series (expected2 , dtype = 'category' )
346- tm .assert_series_equal (s . mode ( dropna ) , expected2 )
361+ tm .assert_series_equal (result , expected2 )
347362
348363 s = Series (Categorical ([1 , 1 , 2 , 3 , 3 , np .nan , np .nan ]))
364+ result = s .mode (dropna )
349365 expected3 = Series (expected3 , dtype = 'category' )
350- tm .assert_series_equal (s . mode ( dropna ) , expected3 )
366+ tm .assert_series_equal (result , expected3 )
351367
352368 @pytest .mark .parametrize ('dropna, expected1, expected2' , [
353369 (True , [2 ** 63 ], [1 , 2 ** 63 ]),
354370 (False , [2 ** 63 ], [1 , 2 ** 63 ])
355371 ])
356372 def test_mode_intoverflow (self , dropna , expected1 , expected2 ):
357373 # Test for uint64 overflow.
358- expected1 = Series (expected1 , dtype = np .uint64 )
359374 s = Series ([1 , 2 ** 63 , 2 ** 63 ], dtype = np .uint64 )
360- tm .assert_series_equal (s .mode (dropna ), expected1 )
375+ result = s .mode (dropna )
376+ expected1 = Series (expected1 , dtype = np .uint64 )
377+ tm .assert_series_equal (result , expected1 )
361378
362- expected2 = Series (expected2 , dtype = np .uint64 )
363379 s = Series ([1 , 2 ** 63 ], dtype = np .uint64 )
364- tm .assert_series_equal (s .mode (dropna ), expected2 )
380+ result = s .mode (dropna )
381+ expected2 = Series (expected2 , dtype = np .uint64 )
382+ tm .assert_series_equal (result , expected2 )
365383
366384 @pytest .mark .skipif (not compat .PY3 , reason = "only PY3" )
367385 def test_mode_sortwarning (self ):
0 commit comments