@@ -231,28 +231,33 @@ 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 ('dt' ,
244+ list (np .typecodes ['AllInteger' ] + np .typecodes ['Float' ])
245+ )
246+ def test_mode_numerical (self , dropna , data , expected , dt ):
247+ s = Series (data , dtype = dt )
248+ result = s .mode (dropna )
249+ expected = Series (expected , dtype = dt )
250+ tm .assert_series_equal (result , expected )
252251
253- s = Series ([1 , np .nan ])
254- expected = Series (expected3 )
255- tm .assert_series_equal (s .mode (dropna ), expected )
252+ @pytest .mark .parametrize ('dropna, expected' , [
253+ (True , [1.0 ]),
254+ (False , [1 , np .nan ]),
255+ ])
256+ def test_mode_numerical_nan (self , dropna , expected ):
257+ s = Series ([1 , 1 , 2 , np .nan , np .nan ])
258+ result = s .mode (dropna )
259+ expected = Series (expected )
260+ tm .assert_series_equal (result , expected )
256261
257262 @pytest .mark .parametrize ('dropna, expected1, expected2, expected3' , [
258263 (True , ['b' ], ['bar' ], ['nan' ]),
@@ -263,34 +268,37 @@ def test_mode_str_obj(self, dropna, expected1, expected2, expected3):
263268 data = ['a' ] * 2 + ['b' ] * 3
264269
265270 s = Series (data , dtype = 'c' )
271+ result = s .mode (dropna )
266272 expected1 = Series (expected1 , dtype = 'c' )
267- tm .assert_series_equal (s . mode ( dropna ) , expected1 )
273+ tm .assert_series_equal (result , expected1 )
268274
269275 data = ['foo' , 'bar' , 'bar' , np .nan , np .nan , np .nan ]
270276
271277 s = Series (data , dtype = object )
272- expected2 = Series (expected2 , dtype = object )
273278 result = s .mode (dropna ).sort_values ().reset_index (drop = True )
279+ expected2 = Series (expected2 , dtype = object )
274280 tm .assert_series_equal (result , expected2 )
275281
276282 data = ['foo' , 'bar' , 'bar' , np .nan , np .nan , np .nan ]
277283
278284 s = Series (data , dtype = str )
285+ result = s .mode (dropna )
279286 expected3 = Series (expected3 , dtype = str )
280- tm .assert_series_equal (s . mode ( dropna ) , expected3 )
287+ tm .assert_series_equal (result , expected3 )
281288
282289 @pytest .mark .parametrize ('dropna, expected1, expected2' , [
283290 (True , ['foo' ], ['foo' ]),
284291 (False , ['foo' ], [np .nan ])
285292 ])
286293 def test_mode_mixeddtype (self , dropna , expected1 , expected2 ):
287- expected = Series (expected1 )
288294 s = Series ([1 , 'foo' , 'foo' ])
289- tm .assert_series_equal (s .mode (dropna ), expected )
295+ result = s .mode (dropna )
296+ expected = Series (expected1 )
297+ tm .assert_series_equal (result , expected )
290298
291- expected = Series (expected2 , dtype = object )
292299 s = Series ([1 , 'foo' , 'foo' , np .nan , np .nan , np .nan ])
293300 result = s .mode (dropna ).sort_values ().reset_index (drop = True )
301+ expected = Series (expected2 , dtype = object )
294302 tm .assert_series_equal (result , expected )
295303
296304 @pytest .mark .parametrize ('dropna, expected1, expected2' , [
@@ -299,16 +307,18 @@ def test_mode_mixeddtype(self, dropna, expected1, expected2):
299307 (False , [np .nan ], [np .nan , '2011-01-03' , '2013-01-02' ]),
300308 ])
301309 def test_mode_datetime (self , dropna , expected1 , expected2 ):
302- expected1 = Series (expected1 , dtype = 'M8[ns]' )
303310 s = Series (['2011-01-03' , '2013-01-02' ,
304311 '1900-05-03' , 'nan' , 'nan' ], dtype = 'M8[ns]' )
305- tm .assert_series_equal (s .mode (dropna ), expected1 )
312+ result = s .mode (dropna )
313+ expected1 = Series (expected1 , dtype = 'M8[ns]' )
314+ tm .assert_series_equal (result , expected1 )
306315
307- expected2 = Series (expected2 , dtype = 'M8[ns]' )
308316 s = Series (['2011-01-03' , '2013-01-02' , '1900-05-03' ,
309317 '2011-01-03' , '2013-01-02' , 'nan' , 'nan' ],
310318 dtype = 'M8[ns]' )
311- tm .assert_series_equal (s .mode (dropna ), expected2 )
319+ result = s .mode (dropna )
320+ expected2 = Series (expected2 , dtype = 'M8[ns]' )
321+ tm .assert_series_equal (result , expected2 )
312322
313323 @pytest .mark .parametrize ('dropna, expected1, expected2' , [
314324 (True , ['-1 days' , '0 days' , '1 days' ], ['2 min' , '1 day' ]),
@@ -319,14 +329,16 @@ def test_mode_timedelta(self, dropna, expected1, expected2):
319329
320330 s = Series (['1 days' , '-1 days' , '0 days' , 'nan' , 'nan' ],
321331 dtype = 'timedelta64[ns]' )
332+ result = s .mode (dropna )
322333 expected1 = Series (expected1 , dtype = 'timedelta64[ns]' )
323- tm .assert_series_equal (s . mode ( dropna ) , expected1 )
334+ tm .assert_series_equal (result , expected1 )
324335
325336 s = Series (['1 day' , '1 day' , '-1 day' , '-1 day 2 min' ,
326337 '2 min' , '2 min' , 'nan' , 'nan' ],
327338 dtype = 'timedelta64[ns]' )
339+ result = s .mode (dropna )
328340 expected2 = Series (expected2 , dtype = 'timedelta64[ns]' )
329- tm .assert_series_equal (s . mode ( dropna ) , expected2 )
341+ tm .assert_series_equal (result , expected2 )
330342
331343 @pytest .mark .parametrize ('dropna, expected1, expected2, expected3' , [
332344 (True , Categorical ([1 , 2 ], categories = [1 , 2 ]),
@@ -338,30 +350,35 @@ def test_mode_timedelta(self, dropna, expected1, expected2):
338350 ])
339351 def test_mode_category (self , dropna , expected1 , expected2 , expected3 ):
340352 s = Series (Categorical ([1 , 2 , np .nan , np .nan ]))
353+ result = s .mode (dropna )
341354 expected1 = Series (expected1 , dtype = 'category' )
342- tm .assert_series_equal (s . mode ( dropna ) , expected1 )
355+ tm .assert_series_equal (result , expected1 )
343356
344357 s = Series (Categorical ([1 , 'a' , 'a' , np .nan , np .nan ]))
358+ result = s .mode (dropna )
345359 expected2 = Series (expected2 , dtype = 'category' )
346- tm .assert_series_equal (s . mode ( dropna ) , expected2 )
360+ tm .assert_series_equal (result , expected2 )
347361
348362 s = Series (Categorical ([1 , 1 , 2 , 3 , 3 , np .nan , np .nan ]))
363+ result = s .mode (dropna )
349364 expected3 = Series (expected3 , dtype = 'category' )
350- tm .assert_series_equal (s . mode ( dropna ) , expected3 )
365+ tm .assert_series_equal (result , expected3 )
351366
352367 @pytest .mark .parametrize ('dropna, expected1, expected2' , [
353368 (True , [2 ** 63 ], [1 , 2 ** 63 ]),
354369 (False , [2 ** 63 ], [1 , 2 ** 63 ])
355370 ])
356371 def test_mode_intoverflow (self , dropna , expected1 , expected2 ):
357372 # Test for uint64 overflow.
358- expected1 = Series (expected1 , dtype = np .uint64 )
359373 s = Series ([1 , 2 ** 63 , 2 ** 63 ], dtype = np .uint64 )
360- tm .assert_series_equal (s .mode (dropna ), expected1 )
374+ result = s .mode (dropna )
375+ expected1 = Series (expected1 , dtype = np .uint64 )
376+ tm .assert_series_equal (result , expected1 )
361377
362- expected2 = Series (expected2 , dtype = np .uint64 )
363378 s = Series ([1 , 2 ** 63 ], dtype = np .uint64 )
364- tm .assert_series_equal (s .mode (dropna ), expected2 )
379+ result = s .mode (dropna )
380+ expected2 = Series (expected2 , dtype = np .uint64 )
381+ tm .assert_series_equal (result , expected2 )
365382
366383 @pytest .mark .skipif (not compat .PY3 , reason = "only PY3" )
367384 def test_mode_sortwarning (self ):
0 commit comments