@@ -371,6 +371,16 @@ def test_constructor_generator(self):
371
371
exp .index = lrange (10 , 20 )
372
372
assert_series_equal (result , exp )
373
373
374
+ def test_constructor_categorical (self ):
375
+ cat = pd .Categorical ([0 , 1 , 2 , 0 , 1 , 2 ], ['a' , 'b' , 'c' ])
376
+ res = Series (cat )
377
+ exp = Series ({0 : 'a' , 1 : 'b' , 2 : 'c' , 3 : 'a' , 4 : 'b' , 5 : 'c' })
378
+ assert_series_equal (res , exp )
379
+
380
+ cat .name = 'foo'
381
+ res = Series (cat )
382
+ self .assertEqual (res .name , cat .name )
383
+
374
384
def test_constructor_maskedarray (self ):
375
385
data = ma .masked_all ((3 ,), dtype = float )
376
386
result = Series (data )
@@ -2966,13 +2976,43 @@ def test_value_counts_nunique(self):
2966
2976
expected = Series ([4 , 3 , 2 , 1 ], index = ['b' , 'a' , 'd' , 'c' ])
2967
2977
assert_series_equal (hist , expected )
2968
2978
2979
+ # don't sort, have to sort after the fact as not sorting is platform-dep
2980
+ hist = s .value_counts (sort = False )
2981
+ hist .sort ()
2982
+ expected = Series ([3 , 1 , 4 , 2 ], index = list ('acbd' ))
2983
+ expected .sort ()
2984
+ assert_series_equal (hist , expected )
2985
+
2986
+ # sort ascending
2987
+ hist = s .value_counts (ascending = True )
2988
+ expected = Series ([1 , 2 , 3 , 4 ], index = list ('cdab' ))
2989
+ assert_series_equal (hist , expected )
2990
+
2969
2991
# relative histogram.
2970
2992
hist = s .value_counts (normalize = True )
2971
2993
expected = Series ([.4 , .3 , .2 , .1 ], index = ['b' , 'a' , 'd' , 'c' ])
2972
2994
assert_series_equal (hist , expected )
2973
2995
2974
2996
self .assertEquals (s .nunique (), 4 )
2975
2997
2998
+ # bins
2999
+ self .assertRaises (TypeError , lambda bins : s .value_counts (bins = bins ), 1 )
3000
+
3001
+ s1 = Series ([1 , 1 , 2 , 3 ])
3002
+ res1 = s1 .value_counts (bins = 1 )
3003
+ exp1 = Series ({0.998 : 4 })
3004
+ assert_series_equal (res1 , exp1 )
3005
+ res1n = s1 .value_counts (bins = 1 , normalize = True )
3006
+ exp1n = Series ({0.998 : 1.0 })
3007
+ assert_series_equal (res1n , exp1n )
3008
+
3009
+ res4 = s1 .value_counts (bins = 4 )
3010
+ exp4 = Series ({0.998 : 2 , 1.5 : 1 , 2.0 : 0 , 2.5 : 1 }, index = [0.998 , 2.5 , 1.5 , 2.0 ])
3011
+ assert_series_equal (res4 , exp4 )
3012
+ res4n = s1 .value_counts (bins = 4 , normalize = True )
3013
+ exp4n = Series ({0.998 : 0.5 , 1.5 : 0.25 , 2.0 : 0.0 , 2.5 : 0.25 }, index = [0.998 , 2.5 , 1.5 , 2.0 ])
3014
+ assert_series_equal (res4n , exp4n )
3015
+
2976
3016
# handle NA's properly
2977
3017
s [5 :7 ] = np .nan
2978
3018
hist = s .value_counts ()
0 commit comments