@@ -25,7 +25,10 @@ def check_nunique(df, keys, as_index=True):
25
25
if not as_index :
26
26
right = right .reset_index (drop = True )
27
27
28
- tm .assert_series_equal (left , right , check_names = False )
28
+ if as_index :
29
+ tm .assert_series_equal (left , right , check_names = False )
30
+ else :
31
+ tm .assert_frame_equal (left , right , check_names = False )
29
32
tm .assert_frame_equal (df , original_df )
30
33
31
34
days = date_range ("2015-08-23" , periods = 10 )
@@ -56,13 +59,14 @@ def check_nunique(df, keys, as_index=True):
56
59
def test_nunique ():
57
60
df = DataFrame ({"A" : list ("abbacc" ), "B" : list ("abxacc" ), "C" : list ("abbacx" )})
58
61
59
- expected = DataFrame ({"A" : [ 1 ] * 3 , "B" : [1 , 2 , 1 ], "C" : [1 , 1 , 2 ]})
62
+ expected = DataFrame ({"A" : list ( "abc" ) , "B" : [1 , 2 , 1 ], "C" : [1 , 1 , 2 ]})
60
63
result = df .groupby ("A" , as_index = False ).nunique ()
61
64
tm .assert_frame_equal (result , expected )
62
65
63
66
# as_index
64
67
expected .index = list ("abc" )
65
68
expected .index .name = "A"
69
+ expected = expected .drop (columns = "A" )
66
70
result = df .groupby ("A" ).nunique ()
67
71
tm .assert_frame_equal (result , expected )
68
72
@@ -71,7 +75,7 @@ def test_nunique():
71
75
tm .assert_frame_equal (result , expected )
72
76
73
77
# dropna
74
- expected = DataFrame ({"A" : [ 1 ] * 3 , " B" : [1 ] * 3 , "C" : [1 ] * 3 }, index = list ("abc" ))
78
+ expected = DataFrame ({"B" : [1 ] * 3 , "C" : [1 ] * 3 }, index = list ("abc" ))
75
79
expected .index .name = "A"
76
80
result = df .replace ({"x" : None }).groupby ("A" ).nunique ()
77
81
tm .assert_frame_equal (result , expected )
0 commit comments