@@ -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 )
@@ -2979,13 +2989,43 @@ def test_value_counts_nunique(self):
2979
2989
expected = Series ([4 , 3 , 2 , 1 ], index = ['b' , 'a' , 'd' , 'c' ])
2980
2990
assert_series_equal (hist , expected )
2981
2991
2992
+ # don't sort, have to sort after the fact as not sorting is platform-dep
2993
+ hist = s .value_counts (sort = False )
2994
+ hist .sort ()
2995
+ expected = Series ([3 , 1 , 4 , 2 ], index = list ('acbd' ))
2996
+ expected .sort ()
2997
+ assert_series_equal (hist , expected )
2998
+
2999
+ # sort ascending
3000
+ hist = s .value_counts (ascending = True )
3001
+ expected = Series ([1 , 2 , 3 , 4 ], index = list ('cdab' ))
3002
+ assert_series_equal (hist , expected )
3003
+
2982
3004
# relative histogram.
2983
3005
hist = s .value_counts (normalize = True )
2984
3006
expected = Series ([.4 , .3 , .2 , .1 ], index = ['b' , 'a' , 'd' , 'c' ])
2985
3007
assert_series_equal (hist , expected )
2986
3008
2987
3009
self .assertEquals (s .nunique (), 4 )
2988
3010
3011
+ # bins
3012
+ self .assertRaises (TypeError , lambda bins : s .value_counts (bins = bins ), 1 )
3013
+
3014
+ s1 = Series ([1 , 1 , 2 , 3 ])
3015
+ res1 = s1 .value_counts (bins = 1 )
3016
+ exp1 = Series ({0.998 : 4 })
3017
+ assert_series_equal (res1 , exp1 )
3018
+ res1n = s1 .value_counts (bins = 1 , normalize = True )
3019
+ exp1n = Series ({0.998 : 1.0 })
3020
+ assert_series_equal (res1n , exp1n )
3021
+
3022
+ res4 = s1 .value_counts (bins = 4 )
3023
+ exp4 = Series ({0.998 : 2 , 1.5 : 1 , 2.0 : 0 , 2.5 : 1 }, index = [0.998 , 2.5 , 1.5 , 2.0 ])
3024
+ assert_series_equal (res4 , exp4 )
3025
+ res4n = s1 .value_counts (bins = 4 , normalize = True )
3026
+ 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 ])
3027
+ assert_series_equal (res4n , exp4n )
3028
+
2989
3029
# handle NA's properly
2990
3030
s [5 :7 ] = np .nan
2991
3031
hist = s .value_counts ()
0 commit comments