@@ -292,12 +292,13 @@ def test_value_counts_unique_nunique(self):
292
292
o = klass (np .repeat (values , range (1 , len (o ) + 1 )))
293
293
294
294
if isinstance (o , DatetimeIndex ):
295
- # DatetimeIndex: nan is casted to Nat and included
296
- expected_s = Series (list (range (10 , 2 , - 1 )) + [ 3 ] , index = values [9 :0 :- 1 ])
295
+ expected_s_na = Series ( list ( range ( 10 , 2 , - 1 )) + [ 3 ], index = values [ 9 : 0 : - 1 ])
296
+ expected_s = Series (list (range (10 , 2 , - 1 )), index = values [9 :1 :- 1 ])
297
297
else :
298
- # nan is excluded
299
- expected_s = Series (range (10 , 2 , - 1 ), index = values [9 :1 :- 1 ], dtype = 'int64' )
298
+ expected_s_na = Series ( list ( range ( 10 , 2 , - 1 )) + [ 3 ], index = values [ 9 : 0 : - 1 ], dtype = 'int64' )
299
+ expected_s = Series (list ( range (10 , 2 , - 1 ) ), index = values [9 :1 :- 1 ], dtype = 'int64' )
300
300
301
+ tm .assert_series_equal (o .value_counts (dropna = False ), expected_s_na )
301
302
tm .assert_series_equal (o .value_counts (), expected_s )
302
303
303
304
# numpy_array_equal cannot compare arrays includes nan
@@ -309,10 +310,8 @@ def test_value_counts_unique_nunique(self):
309
310
else :
310
311
self .assertTrue (pd .isnull (result [0 ]))
311
312
312
- if isinstance (o , DatetimeIndex ):
313
- self .assertEqual (o .nunique (), 9 )
314
- else :
315
- self .assertEqual (o .nunique (), 8 )
313
+ self .assertEqual (o .nunique (), 8 )
314
+ self .assertEqual (o .nunique (dropna = False ), 9 )
316
315
317
316
def test_value_counts_inferred (self ):
318
317
klasses = [Index , Series ]
@@ -406,6 +405,9 @@ def test_value_counts_inferred(self):
406
405
407
406
result = s .value_counts ()
408
407
self .assertEqual (result .index .dtype , 'datetime64[ns]' )
408
+ tm .assert_series_equal (result , expected_s )
409
+
410
+ result = s .value_counts (dropna = False )
409
411
expected_s [pd .NaT ] = 1
410
412
tm .assert_series_equal (result , expected_s )
411
413
@@ -415,7 +417,8 @@ def test_value_counts_inferred(self):
415
417
self .assert_numpy_array_equal (unique [:3 ], expected )
416
418
self .assertTrue (unique [3 ] is pd .NaT or unique [3 ].astype ('int64' ) == pd .tslib .iNaT )
417
419
418
- self .assertEqual (s .nunique (), 4 )
420
+ self .assertEqual (s .nunique (), 3 )
421
+ self .assertEqual (s .nunique (dropna = False ), 4 )
419
422
420
423
# timedelta64[ns]
421
424
td = df .dt - df .dt + timedelta (1 )
0 commit comments